//
// The Open Toolkit Library License
//
// Copyright (c) 2006 - 2010 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.
//



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

    partial class GL
    {

        public static partial class GL_3dfx
        {
            /// <summary>[requires: 3DFX_tbuffer]</summary>
            [AutoGenerated(Category = "3DFX_tbuffer", 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
            }

            /// <summary>[requires: 3DFX_tbuffer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "3DFX_tbuffer", 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
        {
            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", 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
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendEquationIndexedAMD")]
            public static 
            void BlendEquationIndexed(Int32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendEquationIndexedAMD")]
            public static 
            void BlendEquationIndexed(UInt32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendEquationSeparateIndexedAMD")]
            public static 
            void BlendEquationSeparateIndexed(Int32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend modeRGB, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)modeRGB, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendEquationSeparateIndexedAMD")]
            public static 
            void BlendEquationSeparateIndexed(UInt32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend modeRGB, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)modeRGB, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendFuncIndexedAMD")]
            public static 
            void BlendFuncIndexed(Int32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend src, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)src, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendFuncIndexedAMD")]
            public static 
            void BlendFuncIndexed(UInt32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend src, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)src, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_draw_buffers_blend]</summary>
            [AutoGenerated(Category = "AMD_draw_buffers_blend", Version = "2.0", EntryPoint = "glBlendFuncSeparateIndexedAMD")]
            public static 
            void BlendFuncSeparateIndexed(Int32 buf, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend srcRGB, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend dstRGB, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend srcAlpha, OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend dstAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateIndexedAMD((UInt32)buf, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)srcRGB, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)dstRGB, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)srcAlpha, (OpenTK.Graphics.OpenGL.AmdDrawBuffersBlend)dstAlpha);
                #if DEBUG
                }
                #endif
            }

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

            
        /// <summary>[requires: AMD_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackAMD")]
            public static 
            void DebugMessageCallback(DebugProcAmd callback, [OutAttribute] IntPtr userParam)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageCallbackAMD((DebugProcAmd)callback, (IntPtr)userParam);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackAMD")]
            public static 
            void DebugMessageCallback<T1>(DebugProcAmd callback, [InAttribute, OutAttribute] T1[] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackAMD((DebugProcAmd)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackAMD")]
            public static 
            void DebugMessageCallback<T1>(DebugProcAmd callback, [InAttribute, OutAttribute] T1[,] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackAMD((DebugProcAmd)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackAMD")]
            public static 
            void DebugMessageCallback<T1>(DebugProcAmd callback, [InAttribute, OutAttribute] T1[,,] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackAMD((DebugProcAmd)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackAMD")]
            public static 
            void DebugMessageCallback<T1>(DebugProcAmd callback, [InAttribute, OutAttribute] ref T1 userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackAMD((DebugProcAmd)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                    userParam = (T1)userParam_ptr.Target;
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, Int32[] ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, ref Int32 ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, Int32* ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, UInt32[] ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, ref UInt32 ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_debug_output]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageEnableAMD")]
            public static 
            unsafe void DebugMessageEnable(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 count, UInt32* ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageEnableAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageInsertAMD")]
            public static 
            void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, Int32 id, Int32 length, String buf)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageInsertAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (UInt32)id, (Int32)length, (String)buf);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glDebugMessageInsertAMD")]
            public static 
            void DebugMessageInsert(OpenTK.Graphics.OpenGL.AmdDebugOutput category, OpenTK.Graphics.OpenGL.AmdDebugOutput severity, UInt32 id, Int32 length, String buf)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageInsertAMD((OpenTK.Graphics.OpenGL.AmdDebugOutput)category, (OpenTK.Graphics.OpenGL.AmdDebugOutput)severity, (UInt32)id, (Int32)length, (String)buf);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, Int32[] names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* names_ptr = names)
                    {
                        Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, ref Int32 names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* names_ptr = &names)
                    {
                        Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, Int32* names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, UInt32[] names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* names_ptr = names)
                    {
                        Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, ref UInt32 names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* names_ptr = &names)
                    {
                        Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glDeleteNamesAMD")]
            public static 
            unsafe void DeleteNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, UInt32* names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [OutAttribute] 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
            }

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glDeletePerfMonitorsAMD")]
            public static 
            void DeletePerfMonitors(Int32 n, [OutAttribute] 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
            }

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", 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
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] Int32[] names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* names_ptr = names)
                    {
                        Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] out Int32 names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* names_ptr = &names)
                    {
                        Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                        names = *names_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 num, [OutAttribute] Int32* names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] UInt32[] names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* names_ptr = names)
                    {
                        Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] out UInt32 names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* names_ptr = &names)
                    {
                        Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names_ptr);
                        names = *names_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glGenNamesAMD")]
            public static 
            unsafe void GenNames(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 num, [OutAttribute] UInt32* names)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenNamesAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)num, (UInt32*)names);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [OutAttribute] 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
            }

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGenPerfMonitorsAMD")]
            public static 
            void GenPerfMonitors(Int32 n, [OutAttribute] 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
            }

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

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute] Int32[] severities, [OutAttribute] Int32[] ids, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AmdDebugOutput* categories_ptr = categories)
                    fixed (Int32* severities_ptr = severities)
                    fixed (Int32* ids_ptr = ids)
                    fixed (Int32* lengths_ptr = lengths)
                    {
                        return Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories_ptr, (UInt32*)severities_ptr, (UInt32*)ids_ptr, (Int32*)lengths_ptr, (StringBuilder)message);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute] out Int32 severities, [OutAttribute] out Int32 ids, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AmdDebugOutput* categories_ptr = &categories)
                    fixed (Int32* severities_ptr = &severities)
                    fixed (Int32* ids_ptr = &ids)
                    fixed (Int32* lengths_ptr = &lengths)
                    {
                        Int32 retval = Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories_ptr, (UInt32*)severities_ptr, (UInt32*)ids_ptr, (Int32*)lengths_ptr, (StringBuilder)message);
                        categories = *categories_ptr;
                        severities = *severities_ptr;
                        ids = *ids_ptr;
                        lengths = *lengths_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute] Int32* severities, [OutAttribute] Int32* ids, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories, (UInt32*)severities, (UInt32*)ids, (Int32*)lengths, (StringBuilder)message);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput[] categories, [OutAttribute] UInt32[] severities, [OutAttribute] UInt32[] ids, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AmdDebugOutput* categories_ptr = categories)
                    fixed (UInt32* severities_ptr = severities)
                    fixed (UInt32* ids_ptr = ids)
                    fixed (Int32* lengths_ptr = lengths)
                    {
                        return Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories_ptr, (UInt32*)severities_ptr, (UInt32*)ids_ptr, (Int32*)lengths_ptr, (StringBuilder)message);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.AmdDebugOutput categories, [OutAttribute] out UInt32 severities, [OutAttribute] out UInt32 ids, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AmdDebugOutput* categories_ptr = &categories)
                    fixed (UInt32* severities_ptr = &severities)
                    fixed (UInt32* ids_ptr = &ids)
                    fixed (Int32* lengths_ptr = &lengths)
                    {
                        Int32 retval = Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories_ptr, (UInt32*)severities_ptr, (UInt32*)ids_ptr, (Int32*)lengths_ptr, (StringBuilder)message);
                        categories = *categories_ptr;
                        severities = *severities_ptr;
                        ids = *ids_ptr;
                        lengths = *lengths_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogAMD")]
            public static 
            unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.AmdDebugOutput* categories, [OutAttribute] UInt32* severities, [OutAttribute] UInt32* ids, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder message)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetDebugMessageLogAMD((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.AmdDebugOutput*)categories, (UInt32*)severities, (UInt32*)ids, (Int32*)lengths, (StringBuilder)message);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] Int32[] data, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] out Int32 data, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        data = *data_ptr;
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(Int32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] Int32* data, [OutAttribute] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data, (Int32*)bytesWritten);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] UInt32[] data, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] out UInt32 data, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data_ptr, (Int32*)bytesWritten_ptr);
                        data = *data_ptr;
                        bytesWritten = *bytesWritten_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterDataAMD")]
            public static 
            unsafe void GetPerfMonitorCounterData(UInt32 monitor, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, Int32 dataSize, [OutAttribute] UInt32* data, [OutAttribute] Int32* bytesWritten)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterDataAMD((UInt32)monitor, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (Int32)dataSize, (UInt32*)data, (Int32*)bytesWritten);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(Int32 group, Int32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorCounterInfoAMD((UInt32)group, (UInt32)counter, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterInfoAMD")]
            public static 
            void GetPerfMonitorCounterInfo<T3>(UInt32 group, UInt32 counter, OpenTK.Graphics.OpenGL.AmdPerformanceMonitor pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.AmdPerformanceMonitor)pname, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(Int32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(Int32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            void GetPerfMonitorCounters(UInt32 group, [OutAttribute] out Int32 numCounters, [OutAttribute] out Int32 maxActiveCounters, Int32 counterSize, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCountersAMD")]
            public static 
            unsafe void GetPerfMonitorCounters(UInt32 group, [OutAttribute] Int32* numCounters, [OutAttribute] Int32* maxActiveCounters, Int32 counterSize, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            void GetPerfMonitorCounterString(Int32 group, Int32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)counterString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorCounterStringAMD")]
            public static 
            void GetPerfMonitorCounterString(UInt32 group, UInt32 counter, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)counterString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupsAMD")]
            public static 
            void GetPerfMonitorGroup([OutAttribute] out Int32 numGroups, Int32 groupsSize, [OutAttribute] 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
            }

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

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

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)groupString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            unsafe void GetPerfMonitorGroupString(Int32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length, (StringBuilder)groupString);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)groupString);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glGetPerfMonitorGroupStringAMD")]
            public static 
            unsafe void GetPerfMonitorGroupString(UInt32 group, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder groupString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPerfMonitorGroupStringAMD((UInt32)group, (Int32)bufSize, (Int32*)length, (StringBuilder)groupString);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glIsNameAMD")]
            public static 
            bool IsName(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, Int32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsNameAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)name);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_name_gen_delete]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_name_gen_delete", Version = "4.1", EntryPoint = "glIsNameAMD")]
            public static 
            bool IsName(OpenTK.Graphics.OpenGL.AmdNameGenDelete identifier, UInt32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsNameAMD((OpenTK.Graphics.OpenGL.AmdNameGenDelete)identifier, (UInt32)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawArraysIndirectAMD")]
            public static 
            void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, IntPtr indirect, Int32 primcount, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawArraysIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (IntPtr)indirect, (Int32)primcount, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawArraysIndirectAMD")]
            public static 
            void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, [InAttribute, OutAttribute] T1[] indirect, Int32 primcount, Int32 stride)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawArraysIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawArraysIndirectAMD")]
            public static 
            void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, [InAttribute, OutAttribute] T1[,] indirect, Int32 primcount, Int32 stride)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawArraysIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawArraysIndirectAMD")]
            public static 
            void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, [InAttribute, OutAttribute] T1[,,] indirect, Int32 primcount, Int32 stride)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawArraysIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawArraysIndirectAMD")]
            public static 
            void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, [InAttribute, OutAttribute] ref T1 indirect, Int32 primcount, Int32 stride)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawArraysIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                    indirect = (T1)indirect_ptr.Target;
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawElementsIndirectAMD")]
            public static 
            void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect type, IntPtr indirect, Int32 primcount, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawElementsIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)type, (IntPtr)indirect, (Int32)primcount, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawElementsIndirectAMD")]
            public static 
            void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect type, [InAttribute, OutAttribute] T2[] indirect, Int32 primcount, Int32 stride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawElementsIndirectAMD")]
            public static 
            void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect type, [InAttribute, OutAttribute] T2[,] indirect, Int32 primcount, Int32 stride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawElementsIndirectAMD")]
            public static 
            void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect type, [InAttribute, OutAttribute] T2[,,] indirect, Int32 primcount, Int32 stride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: AMD_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "AMD_multi_draw_indirect", Version = "4.0", EntryPoint = "glMultiDrawElementsIndirectAMD")]
            public static 
            void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect type, [InAttribute, OutAttribute] ref T2 indirect, Int32 primcount, Int32 stride)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiDrawElementsIndirectAMD((OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.AmdMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)stride);
                    indirect = (T2)indirect_ptr.Target;
                }
                finally
                {
                    indirect_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            unsafe void SelectPerfMonitorCounters(Int32 monitor, bool enable, Int32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_performance_monitor]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_performance_monitor", Version = "1.2", EntryPoint = "glSelectPerfMonitorCountersAMD")]
            public static 
            unsafe void SelectPerfMonitorCounters(UInt32 monitor, bool enable, UInt32 group, Int32 numCounters, [OutAttribute] 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
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, ref Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, Int32 index, Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, ref Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sample_positions]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sample_positions", Version = "3.2", EntryPoint = "glSetMultisamplefvAMD")]
            public static 
            unsafe void SetMultisample(OpenTK.Graphics.OpenGL.AmdSamplePositions pname, UInt32 index, Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetMultisamplefvAMD((OpenTK.Graphics.OpenGL.AmdSamplePositions)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_stencil_operation_extended]</summary>
            [AutoGenerated(Category = "AMD_stencil_operation_extended", Version = "1.2", EntryPoint = "glStencilOpValueAMD")]
            public static 
            void StencilOpValue(OpenTK.Graphics.OpenGL.AmdStencilOperationExtended face, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilOpValueAMD((OpenTK.Graphics.OpenGL.AmdStencilOperationExtended)face, (UInt32)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_stencil_operation_extended]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_stencil_operation_extended", Version = "1.2", EntryPoint = "glStencilOpValueAMD")]
            public static 
            void StencilOpValue(OpenTK.Graphics.OpenGL.AmdStencilOperationExtended face, UInt32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilOpValueAMD((OpenTK.Graphics.OpenGL.AmdStencilOperationExtended)face, (UInt32)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_vertex_shader_tessellator]</summary>
            [AutoGenerated(Category = "AMD_vertex_shader_tessellator", 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
            }

            /// <summary>[requires: AMD_vertex_shader_tessellator]</summary>
            [AutoGenerated(Category = "AMD_vertex_shader_tessellator", Version = "2.0", EntryPoint = "glTessellationModeAMD")]
            public static 
            void TessellationMode(OpenTK.Graphics.OpenGL.AmdVertexShaderTessellator mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTessellationModeAMD((OpenTK.Graphics.OpenGL.AmdVertexShaderTessellator)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sparse_texture]</summary>
            [AutoGenerated(Category = "AMD_sparse_texture", Version = "4.3", EntryPoint = "glTexStorageSparseAMD")]
            public static 
            void TexStorageSparse(OpenTK.Graphics.OpenGL.AmdSparseTexture target, OpenTK.Graphics.OpenGL.AmdSparseTexture internalFormat, Int32 width, Int32 height, Int32 depth, Int32 layers, Int32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexStorageSparseAMD((OpenTK.Graphics.OpenGL.AmdSparseTexture)target, (OpenTK.Graphics.OpenGL.AmdSparseTexture)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (Int32)layers, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sparse_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sparse_texture", Version = "4.3", EntryPoint = "glTexStorageSparseAMD")]
            public static 
            void TexStorageSparse(OpenTK.Graphics.OpenGL.AmdSparseTexture target, OpenTK.Graphics.OpenGL.AmdSparseTexture internalFormat, Int32 width, Int32 height, Int32 depth, Int32 layers, UInt32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexStorageSparseAMD((OpenTK.Graphics.OpenGL.AmdSparseTexture)target, (OpenTK.Graphics.OpenGL.AmdSparseTexture)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (Int32)layers, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sparse_texture]</summary>
            [AutoGenerated(Category = "AMD_sparse_texture", Version = "4.3", EntryPoint = "glTextureStorageSparseAMD")]
            public static 
            void TextureStorageSparse(Int32 texture, OpenTK.Graphics.OpenGL.AmdSparseTexture target, OpenTK.Graphics.OpenGL.AmdSparseTexture internalFormat, Int32 width, Int32 height, Int32 depth, Int32 layers, Int32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorageSparseAMD((UInt32)texture, (OpenTK.Graphics.OpenGL.AmdSparseTexture)target, (OpenTK.Graphics.OpenGL.AmdSparseTexture)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (Int32)layers, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: AMD_sparse_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "AMD_sparse_texture", Version = "4.3", EntryPoint = "glTextureStorageSparseAMD")]
            public static 
            void TextureStorageSparse(UInt32 texture, OpenTK.Graphics.OpenGL.AmdSparseTexture target, OpenTK.Graphics.OpenGL.AmdSparseTexture internalFormat, Int32 width, Int32 height, Int32 depth, Int32 layers, UInt32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorageSparseAMD((UInt32)texture, (OpenTK.Graphics.OpenGL.AmdSparseTexture)target, (OpenTK.Graphics.OpenGL.AmdSparseTexture)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (Int32)layers, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Apple
        {
            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Bind a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies the name of the vertex array to bind.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Bind a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies the name of the vertex array to bind.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            /// <summary>[requires: APPLE_flush_buffer_range]</summary>
            [AutoGenerated(Category = "APPLE_flush_buffer_range", Version = "1.5", EntryPoint = "glBufferParameteriAPPLE")]
            public static 
            void BufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterApple pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferParameteriAPPLE((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterApple)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glDisableVertexAttribAPPLE")]
            public static 
            void DisableVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glDisableVertexAttribAPPLE")]
            public static 
            void DisableVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableVertexAttribAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glDrawElementArrayAPPLE")]
            public static 
            void DrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glDrawRangeElementArrayAPPLE")]
            public static 
            void DrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glDrawRangeElementArrayAPPLE")]
            public static 
            void DrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer(OpenTK.Graphics.OpenGL.AppleElementArray type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glElementPointerAPPLE((OpenTK.Graphics.OpenGL.AppleElementArray)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

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

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

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

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glElementPointerAPPLE")]
            public static 
            void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AppleElementArray type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AppleElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glEnableVertexAttribAPPLE")]
            public static 
            void EnableVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glEnableVertexAttribAPPLE")]
            public static 
            void EnableVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableVertexAttribAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glFinishObjectAPPLE")]
            public static 
            void FinishObject(OpenTK.Graphics.OpenGL.AppleFence @object, Int32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishObjectAPPLE((OpenTK.Graphics.OpenGL.AppleFence)@object, (Int32)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: APPLE_flush_buffer_range]
        /// Indicate modifications to a range of a mapped buffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the flush operation. target must be GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the start of the buffer subrange, in basic machine units.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the buffer subrange, in basic machine units.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_flush_buffer_range", Version = "1.5", EntryPoint = "glFlushMappedBufferRangeAPPLE")]
            public static 
            void FlushMappedBufferRange(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushMappedBufferRangeAPPLE((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange(Int32 length, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glFlushVertexArrayRangeAPPLE")]
            public static 
            void FlushVertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

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

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glGenFencesAPPLE")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

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

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            void GenVertexArrays(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", Version = "1.2", EntryPoint = "glGenVertexArraysAPPLE")]
            public static 
            unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenVertexArraysAPPLE((Int32)n, (UInt32*)arrays);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glGetObjectParameterivAPPLE")]
            public static 
            unsafe void GetObjectParameter(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_texture_range]</summary>
            [AutoGenerated(Category = "APPLE_texture_range", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [OutAttribute] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterPointervAPPLE((OpenTK.Graphics.OpenGL.AppleTextureRange)target, (OpenTK.Graphics.OpenGL.AppleTextureRange)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

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

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

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

            /// <summary>[requires: APPLE_texture_range]</summary>
            [AutoGenerated(Category = "APPLE_texture_range", Version = "1.2", EntryPoint = "glGetTexParameterPointervAPPLE")]
            public static 
            void GetTexParameterPointer<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, OpenTK.Graphics.OpenGL.AppleTextureRange pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AppleTextureRange)target, (OpenTK.Graphics.OpenGL.AppleTextureRange)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T2)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Determine if a name corresponds to a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies a value that may be the name of a vertex array object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            
        /// <summary>[requires: APPLE_vertex_array_object]
        /// Determine if a name corresponds to a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies a value that may be the name of a vertex array object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_array_object", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glIsVertexAttribEnabledAPPLE")]
            public static 
            bool IsVertexAttribEnabled(Int32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexAttribEnabledAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", Version = "1.5", EntryPoint = "glIsVertexAttribEnabledAPPLE")]
            public static 
            bool IsVertexAttribEnabled(UInt32 index, OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVertexAttribEnabledAPPLE((UInt32)index, (OpenTK.Graphics.OpenGL.AppleVertexProgramEvaluators)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_vertex_program_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_vertex_program_evaluators", 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
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawRangeElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_element_array", Version = "1.2", EntryPoint = "glMultiDrawRangeElementArrayAPPLE")]
            public static 
            unsafe void MultiDrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawRangeElementArrayAPPLE((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glObjectPurgeableAPPLE")]
            public static 
            OpenTK.Graphics.OpenGL.AppleObjectPurgeable ObjectPurgeable(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectPurgeableAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glObjectPurgeableAPPLE")]
            public static 
            OpenTK.Graphics.OpenGL.AppleObjectPurgeable ObjectPurgeable(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectPurgeableAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glObjectUnpurgeableAPPLE")]
            public static 
            OpenTK.Graphics.OpenGL.AppleObjectPurgeable ObjectUnpurgeable(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, Int32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectUnpurgeableAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_object_purgeable]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_object_purgeable", Version = "1.5", EntryPoint = "glObjectUnpurgeableAPPLE")]
            public static 
            OpenTK.Graphics.OpenGL.AppleObjectPurgeable ObjectUnpurgeable(OpenTK.Graphics.OpenGL.AppleObjectPurgeable objectType, UInt32 name, OpenTK.Graphics.OpenGL.AppleObjectPurgeable option)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glObjectUnpurgeableAPPLE((OpenTK.Graphics.OpenGL.AppleObjectPurgeable)objectType, (UInt32)name, (OpenTK.Graphics.OpenGL.AppleObjectPurgeable)option);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "APPLE_fence", 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
            }

            /// <summary>[requires: APPLE_fence]</summary>
            [AutoGenerated(Category = "APPLE_fence", Version = "1.2", EntryPoint = "glTestObjectAPPLE")]
            public static 
            bool TestObject(OpenTK.Graphics.OpenGL.AppleFence @object, Int32 name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glTestObjectAPPLE((OpenTK.Graphics.OpenGL.AppleFence)@object, (UInt32)name);
                #if DEBUG
                }
                #endif
            }

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

            /// <summary>[requires: APPLE_texture_range]</summary>
            [AutoGenerated(Category = "APPLE_texture_range", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRangeAPPLE((OpenTK.Graphics.OpenGL.AppleTextureRange)target, (Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

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

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

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

            /// <summary>[requires: APPLE_texture_range]</summary>
            [AutoGenerated(Category = "APPLE_texture_range", Version = "1.2", EntryPoint = "glTextureRangeAPPLE")]
            public static 
            void TextureRange<T2>(OpenTK.Graphics.OpenGL.AppleTextureRange target, Int32 length, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AppleTextureRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayParameteriAPPLE")]
            public static 
            void VertexArrayParameter(OpenTK.Graphics.OpenGL.AppleVertexArrayRange pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayParameteriAPPLE((OpenTK.Graphics.OpenGL.AppleVertexArrayRange)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange(Int32 length, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayRangeAPPLE((Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: APPLE_vertex_array_range]</summary>
            [AutoGenerated(Category = "APPLE_vertex_array_range", Version = "1.2", EntryPoint = "glVertexArrayRangeAPPLE")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Arb
        {
            
        /// <summary>[requires: ARB_multitexture]
        /// 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 80. texture must be one of GL_TEXTUREi, where i ranges from 0 (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1). The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_multitexture", Version = "1.2", EntryPoint = "glActiveTextureARB")]
            public static 
            void ActiveTexture(OpenTK.Graphics.OpenGL.TextureUnit texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveTextureARB((OpenTK.Graphics.OpenGL.TextureUnit)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_occlusion_query]
        /// 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 one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glBeginQueryARB")]
            public static 
            void BeginQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginQueryARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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 one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glBeginQueryARB")]
            public static 
            void BeginQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginQueryARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", 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>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", 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>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBindBufferARB")]
            public static 
            void BindBuffer(OpenTK.Graphics.OpenGL.BufferTargetArb target, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBindBufferARB")]
            public static 
            void BindBuffer(OpenTK.Graphics.OpenGL.BufferTargetArb target, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glBindProgramARB")]
            public static 
            void BindProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glBindProgramARB")]
            public static 
            void BindProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendEquationiARB")]
            public static 
            void BlendEquation(Int32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendEquationiARB")]
            public static 
            void BlendEquation(UInt32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendEquationSeparateiARB")]
            public static 
            void BlendEquationSeparate(Int32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend modeRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)modeRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendEquationSeparateiARB")]
            public static 
            void BlendEquationSeparate(UInt32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend modeRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)modeRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFunci, specifies the index of the draw buffer for which to set the blend function.
        /// </para>
        /// </param>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. 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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendFunciARB")]
            public static 
            void BlendFunc(Int32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend src, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFunciARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)src, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFunci, specifies the index of the draw buffer for which to set the blend function.
        /// </para>
        /// </param>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. 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 = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendFunciARB")]
            public static 
            void BlendFunc(UInt32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend src, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dst)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFunciARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)src, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dst);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendFuncSeparateiARB")]
            public static 
            void BlendFuncSeparate(Int32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend srcRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dstRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend srcAlpha, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dstAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)srcRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dstRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)srcAlpha, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dstAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers_blend]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_draw_buffers_blend", Version = "1.2", EntryPoint = "glBlendFuncSeparateiARB")]
            public static 
            void BlendFuncSeparate(UInt32 buf, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend srcRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dstRGB, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend srcAlpha, OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend dstAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateiARB((UInt32)buf, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)srcRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dstRGB, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)srcAlpha, (OpenTK.Graphics.OpenGL.ArbDrawBuffersBlend)dstAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)size, (IntPtr)data, (OpenTK.Graphics.OpenGL.BufferUsageArb)usage);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageArb)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferDataARB")]
            public static 
            void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageArb usage)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageArb)usage);
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glBufferSubDataARB")]
            public static 
            void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_color_buffer_float]
        /// Specify whether data read via glReadPixels should be clamped
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Target for color clamping. target must be GL_CLAMP_READ_COLOR.
        /// </para>
        /// </param>
        /// <param name="clamp">
        /// <para>
        /// Specifies whether to apply color clamping. clamp must be GL_TRUE or GL_FALSE.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_color_buffer_float", Version = "1.5", EntryPoint = "glClampColorARB")]
            public static 
            void ClampColor(OpenTK.Graphics.OpenGL.ArbColorBufferFloat target, OpenTK.Graphics.OpenGL.ArbColorBufferFloat clamp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClampColorARB((OpenTK.Graphics.OpenGL.ArbColorBufferFloat)target, (OpenTK.Graphics.OpenGL.ArbColorBufferFloat)clamp);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glClientActiveTextureARB")]
            public static 
            void ClientActiveTexture(OpenTK.Graphics.OpenGL.TextureUnit texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientActiveTextureARB((OpenTK.Graphics.OpenGL.TextureUnit)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32[] length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = length)
                    {
                        Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            void CompileShaderInclude(Int32 shader, Int32 count, String[] path, ref Int32 length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            unsafe void CompileShaderInclude(Int32 shader, Int32 count, String[] path, Int32* length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32[] length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = length)
                    {
                        Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, ref Int32 length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    {
                        Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glCompileShaderIncludeARB")]
            public static 
            unsafe void CompileShaderInclude(UInt32 shader, Int32 count, String[] path, Int32* length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompileShaderIncludeARB((UInt32)shader, (Int32)count, (String[])path, (Int32*)length);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage1DARB")]
            public static 
            void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T6)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage2DARB")]
            public static 
            void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T7)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexImage3DARB")]
            public static 
            void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T8)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage1DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage1DARB")]
            public static 
            void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T6)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage2DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage2DARB")]
            public static 
            void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T8)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTexSubImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedTexSubImage3DARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// 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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glCompressedTexSubImage3DARB")]
            public static 
            void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T10)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

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

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glCreateShaderObjectARB")]
            public static 
            Int32 CreateShaderObject(OpenTK.Graphics.OpenGL.ArbShaderObjects shaderType)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateShaderObjectARB((OpenTK.Graphics.OpenGL.ArbShaderObjects)shaderType);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_cl_event]</summary>
            [AutoGenerated(Category = "ARB_cl_event", Version = "4.1", EntryPoint = "glCreateSyncFromCLeventARB")]
            public static 
            IntPtr CreateSyncFromCLevent(IntPtr context, IntPtr @event, Int32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateSyncFromCLeventARB((IntPtr)context, (IntPtr)@event, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_cl_event]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_cl_event", Version = "4.1", EntryPoint = "glCreateSyncFromCLeventARB")]
            public static 
            IntPtr CreateSyncFromCLevent(IntPtr context, IntPtr @event, UInt32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateSyncFromCLeventARB((IntPtr)context, (IntPtr)@event, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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>[requires: ARB_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackARB")]
            public static 
            void DebugMessageCallback(DebugProcArb callback, IntPtr userParam)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageCallbackARB((DebugProcArb)callback, (IntPtr)userParam);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackARB")]
            public static 
            void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackARB((DebugProcArb)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackARB")]
            public static 
            void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackARB((DebugProcArb)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackARB")]
            public static 
            void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] T1[,,] userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackARB((DebugProcArb)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageCallbackARB")]
            public static 
            void DebugMessageCallback<T1>(DebugProcArb callback, [InAttribute, OutAttribute] ref T1 userParam)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
                try
                {
                    Delegates.glDebugMessageCallbackARB((DebugProcArb)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                    userParam = (T1)userParam_ptr.Target;
                }
                finally
                {
                    userParam_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, Int32[] ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = ids)
                    {
                        Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, ref Int32 ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* ids_ptr = &ids)
                    {
                        Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, Int32* ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, UInt32[] ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = ids)
                    {
                        Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, ref UInt32 ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* ids_ptr = &ids)
                    {
                        Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageControlARB")]
            public static 
            unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 count, UInt32* ids, bool enabled)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageControlARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageInsertARB")]
            public static 
            void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, Int32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, String buf)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageInsertARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (UInt32)id, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)length, (String)buf);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glDebugMessageInsertARB")]
            public static 
            void DebugMessageInsert(OpenTK.Graphics.OpenGL.ArbDebugOutput source, OpenTK.Graphics.OpenGL.ArbDebugOutput type, UInt32 id, OpenTK.Graphics.OpenGL.ArbDebugOutput severity, Int32 length, String buf)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDebugMessageInsertARB((OpenTK.Graphics.OpenGL.ArbDebugOutput)source, (OpenTK.Graphics.OpenGL.ArbDebugOutput)type, (UInt32)id, (OpenTK.Graphics.OpenGL.ArbDebugOutput)severity, (Int32)length, (String)buf);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glDeleteNamedStringARB")]
            public static 
            void DeleteNamedString(Int32 namelen, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeleteNamedStringARB((Int32)namelen, (String)name);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a range of 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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawArraysInstancedARB")]
            public static 
            void DrawArraysInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysInstancedARB((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers]
        /// 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 = "ARB_draw_buffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.ArbDrawBuffers[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDrawBuffers* bufs_ptr = bufs)
                    {
                        Delegates.glDrawBuffersARB((Int32)n, (OpenTK.Graphics.OpenGL.ArbDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers]
        /// 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 = "ARB_draw_buffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.ArbDrawBuffers bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDrawBuffers* bufs_ptr = &bufs)
                    {
                        Delegates.glDrawBuffersARB((Int32)n, (OpenTK.Graphics.OpenGL.ArbDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_buffers]
        /// 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 = "ARB_draw_buffers", Version = "1.5", EntryPoint = "glDrawBuffersARB")]
            public static 
            unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.ArbDrawBuffers* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawBuffersARB((Int32)n, (OpenTK.Graphics.OpenGL.ArbDrawBuffers*)bufs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementsInstancedARB((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedARB")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    indices = (T3)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// 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 = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_occlusion_query]</summary>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glEndQueryARB")]
            public static 
            void EndQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndQueryARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureARB")]
            public static 
            void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureARB")]
            public static 
            void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a face of a cube map texture as a logical buffer to the currently bound framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment. texture must be the name of an existing cube-map texture.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="face">
        /// <para>
        /// Specifies the face of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureFaceARB")]
            public static 
            void FramebufferTextureFace(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a face of a cube map texture as a logical buffer to the currently bound framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment. texture must be the name of an existing cube-map texture.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="face">
        /// <para>
        /// Specifies the face of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureFaceARB")]
            public static 
            void FramebufferTextureFace(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureLayerARB")]
            public static 
            void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glFramebufferTextureLayerARB")]
            public static 
            void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerARB((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [OutAttribute] 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [OutAttribute] 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            void GenBuffers(Int32 n, [OutAttribute] 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGenBuffersARB")]
            public static 
            unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenBuffersARB((Int32)n, (UInt32*)buffers);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGenProgramsARB")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

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

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [OutAttribute] 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [OutAttribute] 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [OutAttribute] 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            void GenQueries(Int32 n, [OutAttribute] 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGenQueriesARB")]
            public static 
            unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenQueriesARB((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ArbVertexShader* type_ptr = &type)
                    {
                        Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ArbVertexShader*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            unsafe void GetActiveAttrib(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ArbVertexShader*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbVertexShader type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ArbVertexShader* type_ptr = &type)
                    {
                        Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ArbVertexShader*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", Version = "1.2", EntryPoint = "glGetActiveAttribARB")]
            public static 
            unsafe void GetActiveAttrib(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbVertexShader* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveAttribARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ArbVertexShader*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ArbShaderObjects* type_ptr = &type)
                    {
                        Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ArbShaderObjects*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            unsafe void GetActiveUniform(Int32 programObj, Int32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ArbShaderObjects*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbShaderObjects type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ArbShaderObjects* type_ptr = &type)
                    {
                        Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ArbShaderObjects*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetActiveUniformARB")]
            public static 
            unsafe void GetActiveUniform(UInt32 programObj, UInt32 index, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ArbShaderObjects* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveUniformARB((UInt32)programObj, (UInt32)index, (Int32)maxLength, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ArbShaderObjects*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(Int32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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
            }

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

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetAttachedObjectsARB")]
            public static 
            unsafe void GetAttachedObjects(UInt32 containerObj, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* obj)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetAttachedObjectsARB((UInt32)containerObj, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", 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>[requires: ARB_vertex_shader]
        /// 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 = "ARB_vertex_shader", 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
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetBufferParameterivARB((OpenTK.Graphics.OpenGL.ArbVertexBufferObject)target, (OpenTK.Graphics.OpenGL.BufferParameterNameArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetBufferParameterivARB((OpenTK.Graphics.OpenGL.ArbVertexBufferObject)target, (OpenTK.Graphics.OpenGL.BufferParameterNameArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferParameterivARB")]
            public static 
            unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferParameterNameArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferParameterivARB((OpenTK.Graphics.OpenGL.ArbVertexBufferObject)target, (OpenTK.Graphics.OpenGL.BufferParameterNameArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [OutAttribute] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferPointervARB((OpenTK.Graphics.OpenGL.ArbVertexBufferObject)target, (OpenTK.Graphics.OpenGL.BufferPointerNameArb)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

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

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

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

            /// <summary>[requires: ARB_vertex_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferPointervARB")]
            public static 
            void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.ArbVertexBufferObject target, OpenTK.Graphics.OpenGL.BufferPointerNameArb pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ArbVertexBufferObject)target, (OpenTK.Graphics.OpenGL.BufferPointerNameArb)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T2)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetBufferSubDataARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glGetBufferSubDataARB")]
            public static 
            void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTargetArb target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Return a compressed 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="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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTexImageARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Return a compressed 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="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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Return a compressed 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="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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Return a compressed 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="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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,,] img)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedTexImageARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_compression]
        /// Return a compressed 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="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 = "ARB_texture_compression", Version = "1.2", EntryPoint = "glGetCompressedTexImageARB")]
            public static 
            void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T2)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* sources_ptr = sources)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* types_ptr = types)
                    fixed (Int32* ids_ptr = ids)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* severities_ptr = severities)
                    fixed (Int32* lengths_ptr = lengths)
                    {
                        return Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* sources_ptr = &sources)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* types_ptr = &types)
                    fixed (Int32* ids_ptr = &ids)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* severities_ptr = &severities)
                    fixed (Int32* lengths_ptr = &lengths)
                    {
                        Int32 retval = Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                        sources = *sources_ptr;
                        types = *types_ptr;
                        ids = *ids_ptr;
                        severities = *severities_ptr;
                        lengths = *lengths_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types, (UInt32*)ids, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities, (Int32*)lengths, (StringBuilder)messageLog);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* sources_ptr = sources)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* types_ptr = types)
                    fixed (UInt32* ids_ptr = ids)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* severities_ptr = severities)
                    fixed (Int32* lengths_ptr = lengths)
                    {
                        return Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput sources, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.ArbDebugOutput severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* sources_ptr = &sources)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* types_ptr = &types)
                    fixed (UInt32* ids_ptr = &ids)
                    fixed (OpenTK.Graphics.OpenGL.ArbDebugOutput* severities_ptr = &severities)
                    fixed (Int32* lengths_ptr = &lengths)
                    {
                        Int32 retval = Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                        sources = *sources_ptr;
                        types = *types_ptr;
                        ids = *ids_ptr;
                        severities = *severities_ptr;
                        lengths = *lengths_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_debug_output]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_debug_output", Version = "4.1", EntryPoint = "glGetDebugMessageLogARB")]
            public static 
            unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* sources, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.ArbDebugOutput* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetDebugMessageLogARB((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)sources, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)types, (UInt32*)ids, (OpenTK.Graphics.OpenGL.ArbDebugOutput*)severities, (Int32*)lengths, (StringBuilder)messageLog);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetGraphicsResetStatusARB")]
            public static 
            OpenTK.Graphics.OpenGL.ArbRobustness GetGraphicsResetStatus()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetGraphicsResetStatusARB();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetHandleARB")]
            public static 
            Int32 GetHandle(OpenTK.Graphics.OpenGL.ArbShaderObjects pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetHandleARB((OpenTK.Graphics.OpenGL.ArbShaderObjects)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            unsafe void GetInfoLog(Int32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (StringBuilder)infoLog);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetInfoLogARB")]
            public static 
            unsafe void GetInfoLog(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInfoLogARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (StringBuilder)infoLog);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glGetNamedStringARB")]
            public static 
            void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] out Int32 stringlen, [OutAttribute] StringBuilder @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* stringlen_ptr = &stringlen)
                    {
                        Delegates.glGetNamedStringARB((Int32)namelen, (String)name, (Int32)bufSize, (Int32*)stringlen_ptr, (StringBuilder)@string);
                        stringlen = *stringlen_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glGetNamedStringARB")]
            public static 
            unsafe void GetNamedString(Int32 namelen, String name, Int32 bufSize, [OutAttribute] Int32* stringlen, [OutAttribute] StringBuilder @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedStringARB((Int32)namelen, (String)name, (Int32)bufSize, (Int32*)stringlen, (StringBuilder)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glGetNamedStringivARB")]
            public static 
            void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedStringivARB((Int32)namelen, (String)name, (OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glGetNamedStringivARB")]
            public static 
            void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedStringivARB((Int32)namelen, (String)name, (OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shading_language_include]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glGetNamedStringivARB")]
            public static 
            unsafe void GetNamedString(Int32 namelen, String name, OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedStringivARB((Int32)namelen, (String)name, (OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnColorTableARB")]
            public static 
            void GetnColorTable(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnColorTableARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnColorTableARB")]
            public static 
            void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[] table)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnColorTableARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnColorTableARB")]
            public static 
            void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] table)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnColorTableARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnColorTableARB")]
            public static 
            void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] table)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnColorTableARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnColorTableARB")]
            public static 
            void GetnColorTable<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 table)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnColorTableARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)table_ptr.AddrOfPinnedObject());
                    table = (T4)table_ptr.Target;
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnCompressedTexImageARB")]
            public static 
            void GetnCompressedTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnCompressedTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)lod, (Int32)bufSize, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnCompressedTexImageARB")]
            public static 
            void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnCompressedTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)lod, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnCompressedTexImageARB")]
            public static 
            void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnCompressedTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)lod, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnCompressedTexImageARB")]
            public static 
            void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] T3[,,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnCompressedTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)lod, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnCompressedTexImageARB")]
            public static 
            void GetnCompressedTexImage<T3>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 lod, Int32 bufSize, [InAttribute, OutAttribute] ref T3 img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnCompressedTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)lod, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T3)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnConvolutionFilterARB")]
            public static 
            void GetnConvolutionFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnConvolutionFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnConvolutionFilterARB")]
            public static 
            void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[] image)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnConvolutionFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnConvolutionFilterARB")]
            public static 
            void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,] image)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnConvolutionFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnConvolutionFilterARB")]
            public static 
            void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T4[,,] image)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnConvolutionFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnConvolutionFilterARB")]
            public static 
            void GetnConvolutionFilter<T4>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T4 image)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnConvolutionFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)image_ptr.AddrOfPinnedObject());
                    image = (T4)image_ptr.Target;
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnHistogramARB")]
            public static 
            void GetnHistogram(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnHistogramARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnHistogramARB")]
            public static 
            void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnHistogramARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnHistogramARB")]
            public static 
            void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnHistogramARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnHistogramARB")]
            public static 
            void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnHistogramARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnHistogramARB")]
            public static 
            void GetnHistogram<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnHistogramARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                    values = (T5)values_ptr.Target;
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapdvARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glGetnMapdvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapdvARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glGetnMapdvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Double*)v_ptr);
                        v = *v_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapdvARB")]
            public static 
            unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnMapdvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapfvARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glGetnMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapfvARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glGetnMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Single*)v_ptr);
                        v = *v_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapfvARB")]
            public static 
            unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapivARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glGetnMapivARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapivARB")]
            public static 
            void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] out Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glGetnMapivARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Int32*)v_ptr);
                        v = *v_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMapivARB")]
            public static 
            unsafe void GetnMap(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness query, Int32 bufSize, [OutAttribute] Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnMapivARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)query, (Int32)bufSize, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMinmaxARB")]
            public static 
            void GetnMinmax(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnMinmaxARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMinmaxARB")]
            public static 
            void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnMinmaxARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMinmaxARB")]
            public static 
            void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnMinmaxARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMinmaxARB")]
            public static 
            void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnMinmaxARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnMinmaxARB")]
            public static 
            void GetnMinmax<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, bool reset, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 values)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnMinmaxARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (bool)reset, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)values_ptr.AddrOfPinnedObject());
                    values = (T5)values_ptr.Target;
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapfvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Single[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* values_ptr = values)
                    {
                        Delegates.glGetnPixelMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (Single*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapfvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Single values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* values_ptr = &values)
                    {
                        Delegates.glGetnPixelMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (Single*)values_ptr);
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapfvARB")]
            public static 
            unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Single* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPixelMapfvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (Single*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int32[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* values_ptr = values)
                    {
                        Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Int32 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* values_ptr = &values)
                    {
                        Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values_ptr);
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int32* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt32[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* values_ptr = values)
                    {
                        Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out UInt32 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* values_ptr = &values)
                    {
                        Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values_ptr);
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapuivARB")]
            public static 
            unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt32* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPixelMapuivARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt32*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int16[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* values_ptr = values)
                    {
                        Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out Int16 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* values_ptr = &values)
                    {
                        Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values_ptr);
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] Int16* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt16[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* values_ptr = values)
                    {
                        Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] out UInt16 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt16* values_ptr = &values)
                    {
                        Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values_ptr);
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPixelMapusvARB")]
            public static 
            unsafe void GetnPixelMap(OpenTK.Graphics.OpenGL.ArbRobustness map, Int32 bufSize, [OutAttribute] UInt16* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPixelMapusvARB((OpenTK.Graphics.OpenGL.ArbRobustness)map, (Int32)bufSize, (UInt16*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPolygonStippleARB")]
            public static 
            void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte[] pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* pattern_ptr = pattern)
                    {
                        Delegates.glGetnPolygonStippleARB((Int32)bufSize, (Byte*)pattern_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPolygonStippleARB")]
            public static 
            void GetnPolygonStipple(Int32 bufSize, [OutAttribute] out Byte pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* pattern_ptr = &pattern)
                    {
                        Delegates.glGetnPolygonStippleARB((Int32)bufSize, (Byte*)pattern_ptr);
                        pattern = *pattern_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnPolygonStippleARB")]
            public static 
            unsafe void GetnPolygonStipple(Int32 bufSize, [OutAttribute] Byte* pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnPolygonStippleARB((Int32)bufSize, (Byte*)pattern);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnSeparableFilterARB")]
            public static 
            void GetnSeparableFilter(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [OutAttribute] IntPtr row, Int32 columnBufSize, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnSeparableFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)rowBufSize, (IntPtr)row, (Int32)columnBufSize, (IntPtr)column, (IntPtr)span);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnSeparableFilterARB")]
            public static 
            void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[] column, [InAttribute, OutAttribute] T7[] span)
                where T4 : struct
                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);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnSeparableFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)rowBufSize, (IntPtr)row_ptr.AddrOfPinnedObject(), (Int32)columnBufSize, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnSeparableFilterARB")]
            public static 
            void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,] column, [InAttribute, OutAttribute] T7[,] span)
                where T4 : struct
                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);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnSeparableFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)rowBufSize, (IntPtr)row_ptr.AddrOfPinnedObject(), (Int32)columnBufSize, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnSeparableFilterARB")]
            public static 
            void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] T4[,,] row, Int32 columnBufSize, [InAttribute, OutAttribute] T6[,,] column, [InAttribute, OutAttribute] T7[,,] span)
                where T4 : struct
                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);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnSeparableFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)rowBufSize, (IntPtr)row_ptr.AddrOfPinnedObject(), (Int32)columnBufSize, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnSeparableFilterARB")]
            public static 
            void GetnSeparableFilter<T4,T6,T7>(OpenTK.Graphics.OpenGL.ArbRobustness target, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 rowBufSize, [InAttribute, OutAttribute] ref T4 row, Int32 columnBufSize, [InAttribute, OutAttribute] ref T6 column, [InAttribute, OutAttribute] ref T7 span)
                where T4 : struct
                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);
                GCHandle span_ptr = GCHandle.Alloc(span, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnSeparableFilterARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)rowBufSize, (IntPtr)row_ptr.AddrOfPinnedObject(), (Int32)columnBufSize, (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                    row = (T4)row_ptr.Target;
                    column = (T6)column_ptr.Target;
                    span = (T7)span_ptr.Target;
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnTexImageARB")]
            public static 
            void GetnTexImage(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)level, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnTexImageARB")]
            public static 
            void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[] img)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)level, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnTexImageARB")]
            public static 
            void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,] img)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)level, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnTexImageARB")]
            public static 
            void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T5[,,] img)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)level, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnTexImageARB")]
            public static 
            void GetnTexImage<T5>(OpenTK.Graphics.OpenGL.ArbRobustness target, Int32 level, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T5 img)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetnTexImageARB((OpenTK.Graphics.OpenGL.ArbRobustness)target, (Int32)level, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T5)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformdvARB")]
            public static 
            unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformdvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformfvARB")]
            public static 
            unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformfvARB((UInt32)program, (Int32)location, (Int32)bufSize, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            unsafe void GetnUniform(Int32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformivARB")]
            public static 
            unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformivARB((UInt32)program, (Int32)location, (Int32)bufSize, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformuivARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetnUniformuivARB((UInt32)program, (Int32)location, (Int32)bufSize, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformuivARB")]
            public static 
            void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetnUniformuivARB((UInt32)program, (Int32)location, (Int32)bufSize, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glGetnUniformuivARB")]
            public static 
            unsafe void GetnUniform(UInt32 program, Int32 location, Int32 bufSize, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetnUniformuivARB((UInt32)program, (Int32)location, (Int32)bufSize, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterfvARB")]
            public static 
            unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterfvARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            unsafe void GetObjectParameter(Int32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetObjectParameterivARB")]
            public static 
            unsafe void GetObjectParameter(UInt32 obj, OpenTK.Graphics.OpenGL.ArbShaderObjects pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectParameterivARB((UInt32)obj, (OpenTK.Graphics.OpenGL.ArbShaderObjects)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterdvARB")]
            public static 
            unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramEnvParameterfvARB")]
            public static 
            unsafe void GetProgramEnvParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramivARB")]
            public static 
            void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramivARB")]
            public static 
            unsafe void GetProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterdvARB")]
            public static 
            unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterdvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, Int32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramLocalParameterfvARB")]
            public static 
            unsafe void GetProgramLocalParameter(OpenTK.Graphics.OpenGL.ArbVertexProgram target, UInt32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterfvARB((OpenTK.Graphics.OpenGL.ArbVertexProgram)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetProgramStringARB")]
            public static 
            void GetProgramString<T2>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T2)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_occlusion_query]</summary>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryivARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_occlusion_query]</summary>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryivARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryivARB")]
            public static 
            unsafe void GetQuery(OpenTK.Graphics.OpenGL.ArbOcclusionQuery target, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryivARB((OpenTK.Graphics.OpenGL.ArbOcclusionQuery)target, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectivARB")]
            public static 
            unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectuivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectuivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_occlusion_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_occlusion_query", Version = "1.5", EntryPoint = "glGetQueryObjectuivARB")]
            public static 
            unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ArbOcclusionQuery pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectuivARB((UInt32)id, (OpenTK.Graphics.OpenGL.ArbOcclusionQuery)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)source);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            unsafe void GetShaderSource(Int32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (StringBuilder)source);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)source);
                        length = *length_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetShaderSourceARB")]
            public static 
            unsafe void GetShaderSource(UInt32 obj, Int32 maxLength, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetShaderSourceARB((UInt32)obj, (Int32)maxLength, (Int32*)length, (StringBuilder)source);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformfvARB")]
            public static 
            unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformfvARB((UInt32)programObj, (Int32)location, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(Int32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            unsafe void GetUniform(Int32 programObj, Int32 location, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", Version = "1.2", EntryPoint = "glGetUniformivARB")]
            public static 
            unsafe void GetUniform(UInt32 programObj, Int32 location, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformivARB((UInt32)programObj, (Int32)location, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribdvARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribfvARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribivARB")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameterArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervARB((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glGetVertexAttribPointervARB")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameterArb)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_vertex_buffer_object]
        /// 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 = "ARB_vertex_buffer_object", 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>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glIsNamedStringARB")]
            public static 
            bool IsNamedString(Int32 namelen, String name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsNamedStringARB((Int32)namelen, (String)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// 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 = "ARB_vertex_program", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_occlusion_query]
        /// 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 = "ARB_occlusion_query", 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>[requires: ARB_shader_objects]
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_vertex_buffer_object]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER or GL_UNIFORM_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>
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glMapBufferARB")]
            public static 
            IntPtr MapBuffer(OpenTK.Graphics.OpenGL.BufferTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexBufferObject access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapBufferARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target, (OpenTK.Graphics.OpenGL.ArbVertexBufferObject)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixIndexPointerARB((Int32)size, (OpenTK.Graphics.OpenGL.ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", Version = "1.1", EntryPoint = "glMatrixIndexPointerARB")]
            public static 
            void MatrixIndexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbMatrixPalette type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbMatrixPalette)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            /// <summary>[requires: ARB_matrix_palette]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_matrix_palette", 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
            }

            
        /// <summary>[requires: ARB_sample_shading]
        /// Specifies minimum rate at which sample shaing takes place
        /// </summary>
        /// <param name="value">
        /// <para>
        /// Specifies the rate at which samples are shaded within each covered pixel.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_sample_shading", Version = "1.2", EntryPoint = "glMinSampleShadingARB")]
            public static 
            void MinSampleShading(Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMinSampleShadingARB((Single)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1dARB")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1dARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1dvARB")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1fARB")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1fARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1fvARB")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1iARB")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1iARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1ivARB")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1sARB")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1sARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord1svARB")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2dARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2dvARB")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2fARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2fvARB")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2iARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2iARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2ivARB")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2sARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2sARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord2svARB")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t, Double r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3dARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t, (Double)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3dvARB")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t, Single r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3fARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t, (Single)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3fvARB")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3iARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t, Int32 r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3iARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t, (Int32)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3ivARB")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3sARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t, Int16 r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3sARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t, (Int16)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord3svARB")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t, Double r, Double q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4dARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t, (Double)r, (Double)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4dvARB")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4dvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t, Single r, Single q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4fARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t, (Single)r, (Single)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4fvARB")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4fvARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4iARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t, Int32 r, Int32 q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4iARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t, (Int32)r, (Int32)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4ivARB")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4ivARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4sARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t, Int16 r, Int16 q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4sARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t, (Int16)r, (Int16)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multitexture]
        /// 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 = "ARB_multitexture", Version = "1.2", EntryPoint = "glMultiTexCoord4svARB")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4svARB((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_transpose_matrix]
        /// 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 = "ARB_transpose_matrix", 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>[requires: ARB_shading_language_include]</summary>
            [AutoGenerated(Category = "ARB_shading_language_include", Version = "1.2", EntryPoint = "glNamedStringARB")]
            public static 
            void NamedString(OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude type, Int32 namelen, String name, Int32 stringlen, String @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedStringARB((OpenTK.Graphics.OpenGL.ArbShadingLanguageInclude)type, (Int32)namelen, (String)name, (Int32)stringlen, (String)@string);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "ARB_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfARB")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfARB((OpenTK.Graphics.OpenGL.ArbPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "ARB_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvARB")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvARB((OpenTK.Graphics.OpenGL.ArbPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "ARB_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvARB")]
            public static 
            unsafe void PointParameter(OpenTK.Graphics.OpenGL.ArbPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvARB((OpenTK.Graphics.OpenGL.ArbPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4dARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4dARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4dvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4dvARB")]
            public static 
            unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4dvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4fARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4fARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameter4fvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramEnvParameter4fvARB")]
            public static 
            unsafe void ProgramEnvParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameter4fvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4dARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4dARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4dvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4dvARB")]
            public static 
            unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4dvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4fARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4fARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameter4fvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

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

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramLocalParameter4fvARB")]
            public static 
            unsafe void ProgramLocalParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameter4fvARB((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glProgramParameteriARB")]
            public static 
            void ProgramParameter(Int32 program, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriARB((UInt32)program, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_geometry_shader4]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_geometry_shader4", Version = "3.0", EntryPoint = "glProgramParameteriARB")]
            public static 
            void ProgramParameter(UInt32 program, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriARB((UInt32)program, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

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

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

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

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

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glProgramStringARB")]
            public static 
            void ProgramString<T3>(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, OpenTK.Graphics.OpenGL.ArbVertexProgram format, Int32 len, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (OpenTK.Graphics.OpenGL.ArbVertexProgram)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T3)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glReadnPixelsARB")]
            public static 
            void ReadnPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReadnPixelsARB((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glReadnPixelsARB")]
            public static 
            void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glReadnPixelsARB((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glReadnPixelsARB")]
            public static 
            void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glReadnPixelsARB((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glReadnPixelsARB")]
            public static 
            void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] T7[,,] data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glReadnPixelsARB((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_robustness]</summary>
            [AutoGenerated(Category = "ARB_robustness", Version = "4.1", EntryPoint = "glReadnPixelsARB")]
            public static 
            void ReadnPixels<T7>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.ArbRobustness format, OpenTK.Graphics.OpenGL.ArbRobustness type, Int32 bufSize, [InAttribute, OutAttribute] ref T7 data)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glReadnPixelsARB((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.ArbRobustness)format, (OpenTK.Graphics.OpenGL.ArbRobustness)type, (Int32)bufSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T7)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_multisample]
        /// 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 = "ARB_multisample", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_texture_buffer_object]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_texture_buffer_object", Version = "3.0", EntryPoint = "glTexBufferARB")]
            public static 
            void TexBuffer(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ArbTextureBufferObject internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ArbTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_texture_buffer_object]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_buffer_object", Version = "3.0", EntryPoint = "glTexBufferARB")]
            public static 
            void TexBuffer(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ArbTextureBufferObject internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferARB((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ArbTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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
            }

            
        /// <summary>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_vertex_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_vertex_buffer_object", Version = "1.2", EntryPoint = "glUnmapBufferARB")]
            public static 
            bool UnmapBuffer(OpenTK.Graphics.OpenGL.BufferTargetArb target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glUnmapBufferARB((OpenTK.Graphics.OpenGL.BufferTargetArb)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [AutoGenerated(Category = "ARB_shader_objects", 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
            }

            /// <summary>[requires: ARB_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_shader_objects", 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>[requires: ARB_shader_objects]
        /// 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 = "ARB_shader_objects", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            /// <summary>[requires: ARB_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", 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
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "ARB_vertex_program", 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>[requires: ARB_instanced_arrays]
        /// Modify the rate at which generic vertex attributes advance during instanced rendering
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the index of the generic vertex attribute.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// Specify the number of instances that will pass between updates of the generic attribute at slot index.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_instanced_arrays", 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
            }

            
        /// <summary>[requires: ARB_instanced_arrays]
        /// Modify the rate at which generic vertex attributes advance during instanced rendering
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the index of the generic vertex attribute.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// Specify the number of instances that will pass between updates of the generic attribute at slot index.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_instanced_arrays", 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>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T5)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerARB((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ARB_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_program", Version = "1.3", EntryPoint = "glVertexAttribPointerARB")]
            public static 
            void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerTypeArb)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T5)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightPointerARB((Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", Version = "1.1", EntryPoint = "glWeightPointerARB")]
            public static 
            void WeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ArbVertexBlend type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ArbVertexBlend)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            /// <summary>[requires: ARB_vertex_blend]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_blend", 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
            }

            
        /// <summary>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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
            }

            
        /// <summary>[requires: ARB_window_pos]
        /// 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 = "ARB_window_pos", 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
            }

        }

        public static partial class Ati
        {
            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp1ATI")]
            public static 
            void AlphaFragmentOp1(OpenTK.Graphics.OpenGL.AtiFragmentShader op, Int32 dst, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp1ATI((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp1ATI")]
            public static 
            void AlphaFragmentOp1(OpenTK.Graphics.OpenGL.AtiFragmentShader op, UInt32 dst, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFragmentOp1ATI((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp2ATI")]
            public static 
            void AlphaFragmentOp2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp2ATI")]
            public static 
            void AlphaFragmentOp2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp3ATI")]
            public static 
            void AlphaFragmentOp3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glAlphaFragmentOp3ATI")]
            public static 
            void AlphaFragmentOp3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glArrayObjectATI")]
            public static 
            void ArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, Int32 size, OpenTK.Graphics.OpenGL.AtiVertexArrayObject type, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glArrayObjectATI((OpenTK.Graphics.OpenGL.EnableCap)array, (Int32)size, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glArrayObjectATI")]
            public static 
            void ArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, Int32 size, OpenTK.Graphics.OpenGL.AtiVertexArrayObject type, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glArrayObjectATI((OpenTK.Graphics.OpenGL.EnableCap)array, (Int32)size, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glBeginFragmentShaderATI")]
            public static 
            void BeginFragmentShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginFragmentShaderATI();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glClientActiveVertexStreamATI")]
            public static 
            void ClientActiveVertexStream(OpenTK.Graphics.OpenGL.AtiVertexStreams stream)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientActiveVertexStreamATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp1ATI")]
            public static 
            void ColorFragmentOp1(OpenTK.Graphics.OpenGL.AtiFragmentShader op, Int32 dst, Int32 dstMask, Int32 dstMod, Int32 arg1, Int32 arg1Rep, Int32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp1ATI((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp1ATI")]
            public static 
            void ColorFragmentOp1(OpenTK.Graphics.OpenGL.AtiFragmentShader op, UInt32 dst, UInt32 dstMask, UInt32 dstMod, UInt32 arg1, UInt32 arg1Rep, UInt32 arg1Mod)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFragmentOp1ATI((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp2ATI")]
            public static 
            void ColorFragmentOp2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp2ATI")]
            public static 
            void ColorFragmentOp2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AtiFragmentShader)op, (UInt32)dst, (UInt32)dstMask, (UInt32)dstMod, (UInt32)arg1, (UInt32)arg1Rep, (UInt32)arg1Mod, (UInt32)arg2, (UInt32)arg2Rep, (UInt32)arg2Mod);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp3ATI")]
            public static 
            void ColorFragmentOp3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glColorFragmentOp3ATI")]
            public static 
            void ColorFragmentOp3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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>[requires: ATI_draw_buffers]
        /// 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 = "ATI_draw_buffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.AtiDrawBuffers[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AtiDrawBuffers* bufs_ptr = bufs)
                    {
                        Delegates.glDrawBuffersATI((Int32)n, (OpenTK.Graphics.OpenGL.AtiDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ATI_draw_buffers]
        /// 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 = "ATI_draw_buffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.AtiDrawBuffers bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.AtiDrawBuffers* bufs_ptr = &bufs)
                    {
                        Delegates.glDrawBuffersATI((Int32)n, (OpenTK.Graphics.OpenGL.AtiDrawBuffers*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ATI_draw_buffers]
        /// 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 = "ATI_draw_buffers", Version = "1.2", EntryPoint = "glDrawBuffersATI")]
            public static 
            unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.AtiDrawBuffers* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawBuffersATI((Int32)n, (OpenTK.Graphics.OpenGL.AtiDrawBuffers*)bufs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glDrawElementArrayATI")]
            public static 
            void DrawElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementArrayATI((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glDrawRangeElementArrayATI")]
            public static 
            void DrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayATI((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glDrawRangeElementArrayATI")]
            public static 
            void DrawRangeElementArray(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementArrayATI((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer(OpenTK.Graphics.OpenGL.AtiElementArray type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glElementPointerATI((OpenTK.Graphics.OpenGL.AtiElementArray)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((OpenTK.Graphics.OpenGL.AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((OpenTK.Graphics.OpenGL.AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glElementPointerATI((OpenTK.Graphics.OpenGL.AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_element_array]</summary>
            [AutoGenerated(Category = "ATI_element_array", Version = "1.2", EntryPoint = "glElementPointerATI")]
            public static 
            void ElementPointer<T1>(OpenTK.Graphics.OpenGL.AtiElementArray type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.AtiElementArray)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glEndFragmentShaderATI")]
            public static 
            void EndFragmentShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndFragmentShaderATI();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", 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
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetArrayObjectfvATI")]
            public static 
            void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetArrayObjectfvATI((OpenTK.Graphics.OpenGL.EnableCap)array, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetArrayObjectfvATI")]
            public static 
            unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetArrayObjectfvATI((OpenTK.Graphics.OpenGL.EnableCap)array, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetArrayObjectivATI")]
            public static 
            void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetArrayObjectivATI((OpenTK.Graphics.OpenGL.EnableCap)array, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetArrayObjectivATI")]
            public static 
            unsafe void GetArrayObject(OpenTK.Graphics.OpenGL.EnableCap array, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetArrayObjectivATI((OpenTK.Graphics.OpenGL.EnableCap)array, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferfvATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferfvATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferfvATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferfvATI")]
            public static 
            unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferfvATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferivATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            unsafe void GetObjectBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferivATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetObjectBufferivATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetObjectBufferivATI")]
            public static 
            unsafe void GetObjectBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetObjectBufferivATI((UInt32)buffer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Single[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = param)
                    {
                        Delegates.glGetTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] out Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = &param)
                    {
                        Delegates.glGetTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterfvATI")]
            public static 
            unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Single* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Int32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = param)
                    {
                        Delegates.glGetTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] out Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = &param)
                    {
                        Delegates.glGetTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glGetTexBumpParameterivATI")]
            public static 
            unsafe void GetTexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, [OutAttribute] Int32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectfvATI")]
            public static 
            unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectfvATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectivATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            unsafe void GetVariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectivATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVariantArrayObjectivATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glGetVariantArrayObjectivATI")]
            public static 
            unsafe void GetVariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantArrayObjectivATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectfvATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectfvATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(Int32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glGetVertexAttribArrayObjectivATI")]
            public static 
            unsafe void GetVertexAttribArrayObject(UInt32 index, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribArrayObjectivATI((UInt32)index, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", 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
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", 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
            }

            /// <summary>[requires: ATI_map_object_buffer]</summary>
            [AutoGenerated(Category = "ATI_map_object_buffer", Version = "1.2", EntryPoint = "glMapObjectBufferATI")]
            public static 
            IntPtr MapObjectBuffer(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_map_object_buffer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_map_object_buffer", Version = "1.2", EntryPoint = "glMapObjectBufferATI")]
            public static 
            IntPtr MapObjectBuffer(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapObjectBufferATI((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer(Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)usage);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] T1[,,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)usage);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glNewObjectBufferATI")]
            public static 
            Int32 NewObjectBuffer<T1>(Int32 size, [InAttribute, OutAttribute] ref T1 pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject usage)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Int32 retval = Delegates.glNewObjectBufferATI((Int32)size, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)usage);
                    pointer = (T1)pointer_ptr.Target;
                    return retval;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Byte nx, Byte ny, Byte nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte)nx, (SByte)ny, (SByte)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, SByte nx, SByte ny, SByte nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte)nx, (SByte)ny, (SByte)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3bvATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3bvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3dATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double nx, Double ny, Double nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3dATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double)nx, (Double)ny, (Double)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3dvATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3fATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single nx, Single ny, Single nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3fATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single)nx, (Single)ny, (Single)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3fvATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3iATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32 nx, Int32 ny, Int32 nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3iATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32)nx, (Int32)ny, (Int32)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3ivATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3sATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16 nx, Int16 ny, Int16 nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3sATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16)nx, (Int16)ny, (Int16)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glNormalStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glNormalStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glNormalStream3svATI")]
            public static 
            unsafe void NormalStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glPassTexCoordATI")]
            public static 
            void PassTexCoord(Int32 dst, Int32 coord, OpenTK.Graphics.OpenGL.AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPassTexCoordATI((UInt32)dst, (UInt32)coord, (OpenTK.Graphics.OpenGL.AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glPassTexCoordATI")]
            public static 
            void PassTexCoord(UInt32 dst, UInt32 coord, OpenTK.Graphics.OpenGL.AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPassTexCoordATI((UInt32)dst, (UInt32)coord, (OpenTK.Graphics.OpenGL.AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_pn_triangles]</summary>
            [AutoGenerated(Category = "ATI_pn_triangles", Version = "1.2", EntryPoint = "glPNTrianglesfATI")]
            public static 
            void PNTriangles(OpenTK.Graphics.OpenGL.AtiPnTriangles pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPNTrianglesfATI((OpenTK.Graphics.OpenGL.AtiPnTriangles)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_pn_triangles]</summary>
            [AutoGenerated(Category = "ATI_pn_triangles", Version = "1.2", EntryPoint = "glPNTrianglesiATI")]
            public static 
            void PNTriangles(OpenTK.Graphics.OpenGL.AtiPnTriangles pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPNTrianglesiATI((OpenTK.Graphics.OpenGL.AtiPnTriangles)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glSampleMapATI")]
            public static 
            void SampleMap(Int32 dst, Int32 interp, OpenTK.Graphics.OpenGL.AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMapATI((UInt32)dst, (UInt32)interp, (OpenTK.Graphics.OpenGL.AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", Version = "1.2", EntryPoint = "glSampleMapATI")]
            public static 
            void SampleMap(UInt32 dst, UInt32 interp, OpenTK.Graphics.OpenGL.AtiFragmentShader swizzle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleMapATI((UInt32)dst, (UInt32)interp, (OpenTK.Graphics.OpenGL.AtiFragmentShader)swizzle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            /// <summary>[requires: ATI_fragment_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_fragment_shader", 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
            }

            
        /// <summary>[requires: ATI_separate_stencil]
        /// 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 = "ATI_separate_stencil", Version = "1.2", EntryPoint = "glStencilFuncSeparateATI")]
            public static 
            void StencilFuncSeparate(OpenTK.Graphics.OpenGL.StencilFunction frontfunc, OpenTK.Graphics.OpenGL.StencilFunction backfunc, Int32 @ref, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFuncSeparateATI((OpenTK.Graphics.OpenGL.StencilFunction)frontfunc, (OpenTK.Graphics.OpenGL.StencilFunction)backfunc, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ATI_separate_stencil]
        /// 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 = "ATI_separate_stencil", Version = "1.2", EntryPoint = "glStencilFuncSeparateATI")]
            public static 
            void StencilFuncSeparate(OpenTK.Graphics.OpenGL.StencilFunction frontfunc, OpenTK.Graphics.OpenGL.StencilFunction backfunc, Int32 @ref, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFuncSeparateATI((OpenTK.Graphics.OpenGL.StencilFunction)frontfunc, (OpenTK.Graphics.OpenGL.StencilFunction)backfunc, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: ATI_separate_stencil]
        /// 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 = "ATI_separate_stencil", Version = "1.2", EntryPoint = "glStencilOpSeparateATI")]
            public static 
            void StencilOpSeparate(OpenTK.Graphics.OpenGL.AtiSeparateStencil face, OpenTK.Graphics.OpenGL.StencilOp sfail, OpenTK.Graphics.OpenGL.StencilOp dpfail, OpenTK.Graphics.OpenGL.StencilOp dppass)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilOpSeparateATI((OpenTK.Graphics.OpenGL.AtiSeparateStencil)face, (OpenTK.Graphics.OpenGL.StencilOp)sfail, (OpenTK.Graphics.OpenGL.StencilOp)dpfail, (OpenTK.Graphics.OpenGL.StencilOp)dppass);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Single[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = param)
                    {
                        Delegates.glTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, ref Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* param_ptr = &param)
                    {
                        Delegates.glTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterfvATI")]
            public static 
            unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Single* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBumpParameterfvATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Single*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Int32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = param)
                    {
                        Delegates.glTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, ref Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = &param)
                    {
                        Delegates.glTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_envmap_bumpmap]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_envmap_bumpmap", Version = "1.2", EntryPoint = "glTexBumpParameterivATI")]
            public static 
            unsafe void TexBumpParameter(OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap pname, Int32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBumpParameterivATI((OpenTK.Graphics.OpenGL.AtiEnvmapBumpmap)pname, (Int32*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_map_object_buffer]</summary>
            [AutoGenerated(Category = "ATI_map_object_buffer", 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
            }

            /// <summary>[requires: ATI_map_object_buffer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_map_object_buffer", 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
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer(Int32 buffer, Int32 offset, Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] T3[,,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(Int32 buffer, Int32 offset, Int32 size, [InAttribute, OutAttribute] ref T3 pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer(UInt32 buffer, UInt32 offset, Int32 size, IntPtr pointer, OpenTK.Graphics.OpenGL.AtiVertexArrayObject preserve)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUpdateObjectBufferATI((UInt32)buffer, (UInt32)offset, (Int32)size, (IntPtr)pointer, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] T3[,,] pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glUpdateObjectBufferATI")]
            public static 
            void UpdateObjectBuffer<T3>(UInt32 buffer, UInt32 offset, Int32 size, [InAttribute, OutAttribute] ref T3 pointer, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)preserve);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glVariantArrayObjectATI")]
            public static 
            void VariantArrayObject(Int32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject type, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantArrayObjectATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_array_object", Version = "1.2", EntryPoint = "glVariantArrayObjectATI")]
            public static 
            void VariantArrayObject(UInt32 id, OpenTK.Graphics.OpenGL.AtiVertexArrayObject type, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantArrayObjectATI((UInt32)id, (OpenTK.Graphics.OpenGL.AtiVertexArrayObject)type, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glVertexAttribArrayObjectATI")]
            public static 
            void VertexAttribArrayObject(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject type, bool normalized, Int32 stride, Int32 buffer, Int32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribArrayObjectATI((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)type, (bool)normalized, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_attrib_array_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_attrib_array_object", Version = "1.2", EntryPoint = "glVertexAttribArrayObjectATI")]
            public static 
            void VertexAttribArrayObject(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject type, bool normalized, Int32 stride, UInt32 buffer, UInt32 offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribArrayObjectATI((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.AtiVertexAttribArrayObject)type, (bool)normalized, (Int32)stride, (UInt32)buffer, (UInt32)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexBlendEnvfATI")]
            public static 
            void VertexBlendEnv(OpenTK.Graphics.OpenGL.AtiVertexStreams pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexBlendEnvfATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexBlendEnviATI")]
            public static 
            void VertexBlendEnv(OpenTK.Graphics.OpenGL.AtiVertexStreams pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexBlendEnviATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1dATI")]
            public static 
            void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1dATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1dvATI")]
            public static 
            unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1fATI")]
            public static 
            void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1fATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1fvATI")]
            public static 
            unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1iATI")]
            public static 
            void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1iATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1ivATI")]
            public static 
            unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1sATI")]
            public static 
            void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1sATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream1svATI")]
            public static 
            unsafe void VertexStream1(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream1svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2dATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2dATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2dvATI")]
            public static 
            unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2fATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2fATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2fvATI")]
            public static 
            unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2iATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32 x, Int32 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2iATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32)x, (Int32)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2ivATI")]
            public static 
            unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2sATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16 x, Int16 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2sATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16)x, (Int16)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream2svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream2svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream2svATI")]
            public static 
            unsafe void VertexStream2(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream2svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3dATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3dATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3dvATI")]
            public static 
            unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3fATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3fATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3fvATI")]
            public static 
            unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3iATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32 x, Int32 y, Int32 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3iATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32)x, (Int32)y, (Int32)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3ivATI")]
            public static 
            unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3sATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16 x, Int16 y, Int16 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3sATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16)x, (Int16)y, (Int16)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream3svATI")]
            public static 
            unsafe void VertexStream3(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream3svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4dATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4dATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Double coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4dvATI")]
            public static 
            unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Double* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4dvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Double*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4fATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4fATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4fvATI")]
            public static 
            unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4fvATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4iATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4iATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int32 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4ivATI")]
            public static 
            unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int32* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4ivATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int32*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4sATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16 x, Int16 y, Int16 z, Int16 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4sATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16)x, (Int16)y, (Int16)z, (Int16)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = coords)
                    {
                        Delegates.glVertexStream4svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, ref Int16 coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int16* coords_ptr = &coords)
                    {
                        Delegates.glVertexStream4svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ATI_vertex_streams]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ATI_vertex_streams", Version = "1.2", EntryPoint = "glVertexStream4svATI")]
            public static 
            unsafe void VertexStream4(OpenTK.Graphics.OpenGL.AtiVertexStreams stream, Int16* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexStream4svATI((OpenTK.Graphics.OpenGL.AtiVertexStreams)stream, (Int16*)coords);
                #if DEBUG
                }
                #endif
            }

        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glAccum")]
        public static 
        void Accum(OpenTK.Graphics.OpenGL.AccumOp op, Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAccum((OpenTK.Graphics.OpenGL.AccumOp)op, (Single)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Set the active program object for a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the program pipeline object to set the active program object for.
        /// </para>
        /// </param>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to set as the active program pipeline object pipeline.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glActiveShaderProgram")]
        public static 
        void ActiveShaderProgram(Int32 pipeline, Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glActiveShaderProgram((UInt32)pipeline, (UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Set the active program object for a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the program pipeline object to set the active program object for.
        /// </para>
        /// </param>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to set as the active program pipeline object pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glActiveShaderProgram")]
        public static 
        void ActiveShaderProgram(UInt32 pipeline, UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glActiveShaderProgram((UInt32)pipeline, (UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 80. texture must be one of GL_TEXTUREi, where i ranges from 0 (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1). The initial value is GL_TEXTURE0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_3", Version = "1.3", EntryPoint = "glActiveTexture")]
        public static 
        void ActiveTexture(OpenTK.Graphics.OpenGL.TextureUnit texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glActiveTexture((OpenTK.Graphics.OpenGL.TextureUnit)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glAlphaFunc")]
        public static 
        void AlphaFunc(OpenTK.Graphics.OpenGL.AlphaFunction func, Single @ref)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glAlphaFunc((OpenTK.Graphics.OpenGL.AlphaFunction)func, (Single)@ref);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, Int32[] textures, [OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, ref Int32 textures, [OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        unsafe bool AreTexturesResident(Int32 n, Int32* textures, [OutAttribute] bool* residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures, (bool*)residences);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, UInt32[] textures, [OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        bool AreTexturesResident(Int32 n, ref UInt32 textures, [OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glAreTexturesResident")]
        public static 
        unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [OutAttribute] bool* residences)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glAreTexturesResident((Int32)n, (UInt32*)textures, (bool*)residences);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glBegin")]
        public static 
        void Begin(OpenTK.Graphics.OpenGL.PrimitiveType mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            GraphicsContext.CurrentContext.ErrorChecking = false;
            #endif
            Delegates.glBegin((OpenTK.Graphics.OpenGL.PrimitiveType)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBeginConditionalRender")]
        public static 
        void BeginConditionalRender(Int32 id, OpenTK.Graphics.OpenGL.ConditionalRenderType mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginConditionalRender((UInt32)id, (OpenTK.Graphics.OpenGL.ConditionalRenderType)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBeginConditionalRender")]
        public static 
        void BeginConditionalRender(UInt32 id, OpenTK.Graphics.OpenGL.ConditionalRenderType mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginConditionalRender((UInt32)id, (OpenTK.Graphics.OpenGL.ConditionalRenderType)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBeginQuery")]
        public static 
        void BeginQuery(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQuery((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBeginQuery")]
        public static 
        void BeginQuery(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQuery((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Delimit the boundaries of a query object on an indexed target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQueryIndexed and the subsequent glEndQueryIndexed. The symbolic constant must be one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query target upon which to begin the query.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glBeginQueryIndexed")]
        public static 
        void BeginQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQueryIndexed((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Delimit the boundaries of a query object on an indexed target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target type of query object established between glBeginQueryIndexed and the subsequent glEndQueryIndexed. The symbolic constant must be one of GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, or GL_TIME_ELAPSED.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query target upon which to begin the query.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a query object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glBeginQueryIndexed")]
        public static 
        void BeginQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginQueryIndexed((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Start transform feedback operation
        /// </summary>
        /// <param name="primitiveMode">
        /// <para>
        /// Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBeginTransformFeedback")]
        public static 
        void BeginTransformFeedback(OpenTK.Graphics.OpenGL.BeginFeedbackMode primitiveMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBeginTransformFeedback((OpenTK.Graphics.OpenGL.BeginFeedbackMode)primitiveMode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBindBuffer")]
        public static 
        void BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget target, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBuffer((OpenTK.Graphics.OpenGL.BufferTarget)target, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of a buffer object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glBindBuffer")]
        public static 
        void BindBuffer(OpenTK.Graphics.OpenGL.BufferTarget target, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBuffer((OpenTK.Graphics.OpenGL.BufferTarget)target, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindBufferBase")]
        public static 
        void BindBufferBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 index, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferBase((OpenTK.Graphics.OpenGL.BufferRangeTarget)target, (UInt32)index, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindBufferBase")]
        public static 
        void BindBufferBase(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 index, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferBase((OpenTK.Graphics.OpenGL.BufferRangeTarget)target, (UInt32)index, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindBufferRange")]
        public static 
        void BindBufferRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferRange((OpenTK.Graphics.OpenGL.BufferRangeTarget)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glBindBufferRange")]
        public static 
        void BindBufferRange(OpenTK.Graphics.OpenGL.BufferRangeTarget target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindBufferRange((OpenTK.Graphics.OpenGL.BufferRangeTarget)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a user-defined varying out variable to a fragment shader color number
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        
        /// <summary>[requires: v3.0]
        /// Bind a user-defined varying out variable to a fragment shader color number
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_blend_func_extended]
        /// Bind a user-defined varying out variable to a fragment shader color number and index
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the color input to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_blend_func_extended", Version = "1.2", EntryPoint = "glBindFragDataLocationIndexed")]
        public static 
        void BindFragDataLocationIndexed(Int32 program, Int32 colorNumber, Int32 index, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFragDataLocationIndexed((UInt32)program, (UInt32)colorNumber, (UInt32)index, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_blend_func_extended]
        /// Bind a user-defined varying out variable to a fragment shader color number and index
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the color input to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_blend_func_extended", Version = "1.2", EntryPoint = "glBindFragDataLocationIndexed")]
        public static 
        void BindFragDataLocationIndexed(UInt32 program, UInt32 colorNumber, UInt32 index, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFragDataLocationIndexed((UInt32)program, (UInt32)colorNumber, (UInt32)index, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Bind a framebuffer to a framebuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target of the binding operation.
        /// </para>
        /// </param>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies the name of the framebuffer object to bind.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glBindFramebuffer")]
        public static 
        void BindFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Bind a framebuffer to a framebuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target of the binding operation.
        /// </para>
        /// </param>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies the name of the framebuffer object to bind.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glBindFramebuffer")]
        public static 
        void BindFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, UInt32 framebuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (UInt32)framebuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_image_load_store]
        /// Bind a level of a texture to an image unit
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the image unit to which to bind the texture
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of the texture to bind to the image unit.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level of the texture that is to be bound.
        /// </para>
        /// </param>
        /// <param name="layered">
        /// <para>
        /// Specifies whether a layered texture binding is to be established.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// If layered is GL_FALSE, specifies the layer of texture to be bound to the image unit. Ignored otherwise.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies a token indicating the type of access that will be performed on the image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_image_load_store", Version = "4.2", EntryPoint = "glBindImageTexture")]
        public static 
        void BindImageTexture(Int32 unit, Int32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.TextureAccess access, OpenTK.Graphics.OpenGL.SizedInternalFormat format)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindImageTexture((UInt32)unit, (UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.TextureAccess)access, (OpenTK.Graphics.OpenGL.SizedInternalFormat)format);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_image_load_store]
        /// Bind a level of a texture to an image unit
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the image unit to which to bind the texture
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of the texture to bind to the image unit.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level of the texture that is to be bound.
        /// </para>
        /// </param>
        /// <param name="layered">
        /// <para>
        /// Specifies whether a layered texture binding is to be established.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// If layered is GL_FALSE, specifies the layer of texture to be bound to the image unit. Ignored otherwise.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies a token indicating the type of access that will be performed on the image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_image_load_store", Version = "4.2", EntryPoint = "glBindImageTexture")]
        public static 
        void BindImageTexture(UInt32 unit, UInt32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.TextureAccess access, OpenTK.Graphics.OpenGL.SizedInternalFormat format)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindImageTexture((UInt32)unit, (UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.TextureAccess)access, (OpenTK.Graphics.OpenGL.SizedInternalFormat)format);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Bind a program pipeline to the current context
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of the pipeline object to bind to the context.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glBindProgramPipeline")]
        public static 
        void BindProgramPipeline(Int32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Bind a program pipeline to the current context
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of the pipeline object to bind to the context.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glBindProgramPipeline")]
        public static 
        void BindProgramPipeline(UInt32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Bind a renderbuffer to a renderbuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the renderbuffer target of the binding operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of the renderbuffer object to bind.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glBindRenderbuffer")]
        public static 
        void BindRenderbuffer(OpenTK.Graphics.OpenGL.RenderbufferTarget target, Int32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindRenderbuffer((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Bind a renderbuffer to a renderbuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the renderbuffer target of the binding operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of the renderbuffer object to bind.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glBindRenderbuffer")]
        public static 
        void BindRenderbuffer(OpenTK.Graphics.OpenGL.RenderbufferTarget target, UInt32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindRenderbuffer((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Bind a named sampler to a texturing target
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the texture unit to which the sampler is bound.
        /// </para>
        /// </param>
        /// <param name="sampler">
        /// <para>
        /// Specifies the name of a sampler.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glBindSampler")]
        public static 
        void BindSampler(Int32 unit, Int32 sampler)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindSampler((UInt32)unit, (UInt32)sampler);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Bind a named sampler to a texturing target
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the texture unit to which the sampler is bound.
        /// </para>
        /// </param>
        /// <param name="sampler">
        /// <para>
        /// Specifies the name of a sampler.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glBindSampler")]
        public static 
        void BindSampler(UInt32 unit, UInt32 sampler)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindSampler((UInt32)unit, (UInt32)sampler);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glBindTexture")]
        public static 
        void BindTexture(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTexture((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glBindTexture")]
        public static 
        void BindTexture(OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTexture((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Bind a transform feedback object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which to bind the transform feedback object id. target must be GL_TRANSFORM_FEEDBACK.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object reserved by glGenTransformFeedbacks.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glBindTransformFeedback")]
        public static 
        void BindTransformFeedback(OpenTK.Graphics.OpenGL.TransformFeedbackTarget target, Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTransformFeedback((OpenTK.Graphics.OpenGL.TransformFeedbackTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Bind a transform feedback object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which to bind the transform feedback object id. target must be GL_TRANSFORM_FEEDBACK.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object reserved by glGenTransformFeedbacks.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glBindTransformFeedback")]
        public static 
        void BindTransformFeedback(OpenTK.Graphics.OpenGL.TransformFeedbackTarget target, UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindTransformFeedback((OpenTK.Graphics.OpenGL.TransformFeedbackTarget)target, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Bind a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies the name of the vertex array to bind.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Bind a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies the name of the vertex array to bind.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Bind a buffer to a vertex buffer bind point
        /// </summary>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the vertex buffer binding point to which to bind the buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of an existing buffer to bind to the vertex buffer binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset of the first element of the buffer.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glBindVertexBuffer")]
        public static 
        void BindVertexBuffer(Int32 bindingindex, Int32 buffer, IntPtr offset, Int32 stride)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindVertexBuffer((UInt32)bindingindex, (UInt32)buffer, (IntPtr)offset, (Int32)stride);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Bind a buffer to a vertex buffer bind point
        /// </summary>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the vertex buffer binding point to which to bind the buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of an existing buffer to bind to the vertex buffer binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset of the first element of the buffer.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glBindVertexBuffer")]
        public static 
        void BindVertexBuffer(UInt32 bindingindex, UInt32 buffer, IntPtr offset, Int32 stride)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBindVertexBuffer((UInt32)bindingindex, (UInt32)buffer, (IntPtr)offset, (Int32)stride);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2]
        /// Set the blend color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// specify the components of GL_BLEND_COLOR
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_2", 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>[requires: v1.2]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glBlendEquation")]
        public static 
        void BlendEquation(OpenTK.Graphics.OpenGL.BlendEquationMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquation((OpenTK.Graphics.OpenGL.BlendEquationMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendEquationi")]
        public static 
        void BlendEquation(Int32 buf, OpenTK.Graphics.OpenGL.Version40 mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationi((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendEquationi")]
        public static 
        void BlendEquation(UInt32 buf, OpenTK.Graphics.OpenGL.Version40 mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationi((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glBlendEquationSeparate")]
        public static 
        void BlendEquationSeparate(OpenTK.Graphics.OpenGL.BlendEquationMode modeRGB, OpenTK.Graphics.OpenGL.BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparate((OpenTK.Graphics.OpenGL.BlendEquationMode)modeRGB, (OpenTK.Graphics.OpenGL.BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendEquationSeparatei")]
        public static 
        void BlendEquationSeparate(Int32 buf, OpenTK.Graphics.OpenGL.BlendEquationMode modeRGB, OpenTK.Graphics.OpenGL.BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparatei((UInt32)buf, (OpenTK.Graphics.OpenGL.BlendEquationMode)modeRGB, (OpenTK.Graphics.OpenGL.BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendEquationSeparatei")]
        public static 
        void BlendEquationSeparate(UInt32 buf, OpenTK.Graphics.OpenGL.BlendEquationMode modeRGB, OpenTK.Graphics.OpenGL.BlendEquationMode modeAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendEquationSeparatei((UInt32)buf, (OpenTK.Graphics.OpenGL.BlendEquationMode)modeRGB, (OpenTK.Graphics.OpenGL.BlendEquationMode)modeAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFunci, specifies the index of the draw buffer for which to set the blend function.
        /// </para>
        /// </param>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glBlendFunc")]
        public static 
        void BlendFunc(OpenTK.Graphics.OpenGL.BlendingFactorSrc sfactor, OpenTK.Graphics.OpenGL.BlendingFactorDest dfactor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunc((OpenTK.Graphics.OpenGL.BlendingFactorSrc)sfactor, (OpenTK.Graphics.OpenGL.BlendingFactorDest)dfactor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFunci, specifies the index of the draw buffer for which to set the blend function.
        /// </para>
        /// </param>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. 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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendFunci")]
        public static 
        void BlendFunc(Int32 buf, OpenTK.Graphics.OpenGL.Version40 src, OpenTK.Graphics.OpenGL.Version40 dst)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunci((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)src, (OpenTK.Graphics.OpenGL.Version40)dst);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify pixel arithmetic
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFunci, specifies the index of the draw buffer for which to set the blend function.
        /// </para>
        /// </param>
        /// <param name="sfactor">
        /// <para>
        /// Specifies how the red, green, blue, and alpha source blending factors are computed. 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 = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendFunci")]
        public static 
        void BlendFunc(UInt32 buf, OpenTK.Graphics.OpenGL.Version40 src, OpenTK.Graphics.OpenGL.Version40 dst)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFunci((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)src, (OpenTK.Graphics.OpenGL.Version40)dst);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glBlendFuncSeparate")]
        public static 
        void BlendFuncSeparate(OpenTK.Graphics.OpenGL.BlendingFactorSrc sfactorRGB, OpenTK.Graphics.OpenGL.BlendingFactorDest dfactorRGB, OpenTK.Graphics.OpenGL.BlendingFactorSrc sfactorAlpha, OpenTK.Graphics.OpenGL.BlendingFactorDest dfactorAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparate((OpenTK.Graphics.OpenGL.BlendingFactorSrc)sfactorRGB, (OpenTK.Graphics.OpenGL.BlendingFactorDest)dfactorRGB, (OpenTK.Graphics.OpenGL.BlendingFactorSrc)sfactorAlpha, (OpenTK.Graphics.OpenGL.BlendingFactorDest)dfactorAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendFuncSeparatei")]
        public static 
        void BlendFuncSeparate(Int32 buf, OpenTK.Graphics.OpenGL.Version40 srcRGB, OpenTK.Graphics.OpenGL.Version40 dstRGB, OpenTK.Graphics.OpenGL.Version40 srcAlpha, OpenTK.Graphics.OpenGL.Version40 dstAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparatei((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)srcRGB, (OpenTK.Graphics.OpenGL.Version40)dstRGB, (OpenTK.Graphics.OpenGL.Version40)srcAlpha, (OpenTK.Graphics.OpenGL.Version40)dstAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_4_0", Version = "1.2", EntryPoint = "glBlendFuncSeparatei")]
        public static 
        void BlendFuncSeparate(UInt32 buf, OpenTK.Graphics.OpenGL.Version40 srcRGB, OpenTK.Graphics.OpenGL.Version40 dstRGB, OpenTK.Graphics.OpenGL.Version40 srcAlpha, OpenTK.Graphics.OpenGL.Version40 dstAlpha)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBlendFuncSeparatei((UInt32)buf, (OpenTK.Graphics.OpenGL.Version40)srcRGB, (OpenTK.Graphics.OpenGL.Version40)dstRGB, (OpenTK.Graphics.OpenGL.Version40)srcAlpha, (OpenTK.Graphics.OpenGL.Version40)dstAlpha);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Copy a block of pixels from the read framebuffer to the draw framebuffer
        /// </summary>
        /// <param name="srcX0">
        /// <para>
        /// Specify the bounds of the source rectangle within the read buffer of the read framebuffer.
        /// </para>
        /// </param>
        /// <param name="dstX0">
        /// <para>
        /// Specify the bounds of the destination rectangle within the write buffer of the write framebuffer.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// The bitwise OR of the flags indicating which buffers are to be copied. The allowed flags are GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT and GL_STENCIL_BUFFER_BIT.
        /// </para>
        /// </param>
        /// <param name="filter">
        /// <para>
        /// Specifies the interpolation to be applied if the image is stretched. Must be GL_NEAREST or GL_LINEAR.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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, OpenTK.Graphics.OpenGL.ClearBufferMask mask, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ClearBufferMask)mask, (OpenTK.Graphics.OpenGL.BlitFramebufferFilter)filter);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)size, (IntPtr)data, (OpenTK.Graphics.OpenGL.BufferUsageHint)usage);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageHint)usage);
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferData")]
        public static 
        void BufferData<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.BufferUsageHint usage)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.BufferUsageHint)usage);
                data = (T2)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glBufferSubData")]
        public static 
        void BufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T3)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// Execute a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies the integer name of the display list to be executed.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, IntPtr lists)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCallLists((Int32)n, (OpenTK.Graphics.OpenGL.ListNameType)type, (IntPtr)lists);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCallLists")]
        public static 
        void CallLists<T2>(Int32 n, OpenTK.Graphics.OpenGL.ListNameType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ListNameType)type, (IntPtr)lists_ptr.AddrOfPinnedObject());
                lists = (T2)lists_ptr.Target;
            }
            finally
            {
                lists_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Check the completeness status of a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the framebuffer completeness check.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glCheckFramebufferStatus")]
        public static 
        OpenTK.Graphics.OpenGL.FramebufferErrorCode CheckFramebufferStatus(OpenTK.Graphics.OpenGL.FramebufferTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCheckFramebufferStatus((OpenTK.Graphics.OpenGL.FramebufferTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Specify whether data read via glReadPixels should be clamped
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Target for color clamping. target must be GL_CLAMP_READ_COLOR.
        /// </para>
        /// </param>
        /// <param name="clamp">
        /// <para>
        /// Specifies whether to apply color clamping. clamp must be GL_TRUE or GL_FALSE.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClampColor")]
        public static 
        void ClampColor(OpenTK.Graphics.OpenGL.ClampColorTarget target, OpenTK.Graphics.OpenGL.ClampColorMode clamp)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClampColor((OpenTK.Graphics.OpenGL.ClampColorTarget)target, (OpenTK.Graphics.OpenGL.ClampColorMode)clamp);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Clear buffers to preset values
        /// </summary>
        /// <param name="mask">
        /// <para>
        /// Bitwise OR of masks that indicate the buffers to be cleared. The three masks are GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glClear")]
        public static 
        void Clear(OpenTK.Graphics.OpenGL.ClearBufferMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClear((OpenTK.Graphics.OpenGL.ClearBufferMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill a buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferData")]
        public static 
        void ClearBufferData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill a buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferData")]
        public static 
        void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[] data)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill a buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferData")]
        public static 
        void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,] data)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill a buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferData")]
        public static 
        void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,,] data)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill a buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferData")]
        public static 
        void ClearBufferData<T4>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T4 data)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T4)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfi")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBufferCombined buffer, Int32 drawbuffer, Single depth, Int32 stencil)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferfi((OpenTK.Graphics.OpenGL.ClearBufferCombined)buffer, (Int32)drawbuffer, (Single)depth, (Int32)stencil);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Single[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = value)
                {
                    Delegates.glClearBufferfv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref Single value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* value_ptr = &value)
                {
                    Delegates.glClearBufferfv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferfv")]
        public static 
        unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferfv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Int32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = value)
                {
                    Delegates.glClearBufferiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* value_ptr = &value)
                {
                    Delegates.glClearBufferiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferiv")]
        public static 
        unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill all or part of buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset, in basic machine units into the buffer object's data store at which to start filling.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferSubData")]
        public static 
        void ClearBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill all or part of buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset, in basic machine units into the buffer object's data store at which to start filling.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferSubData")]
        public static 
        void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill all or part of buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset, in basic machine units into the buffer object's data store at which to start filling.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferSubData")]
        public static 
        void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill all or part of buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset, in basic machine units into the buffer object's data store at which to start filling.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferSubData")]
        public static 
        void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_clear_buffer_object]
        /// Fill all or part of buffer object's data store with a fixed value
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of the global buffer binding targets.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format with which the data will be stored in the buffer object.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset, in basic machine units into the buffer object's data store at which to start filling.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The size, in basic machine units of the range of the data store to fill.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// The format of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data in memory addressed by data.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// The address of a memory location storing the data to be replicated into the buffer's data store.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearBufferSubData")]
        public static 
        void ClearBufferSubData<T6>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T6 data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glClearBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T6)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, UInt32[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = value)
                {
                    Delegates.glClearBufferuiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, ref UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* value_ptr = &value)
                {
                    Delegates.glClearBufferuiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Clear individual buffers of the currently bound draw framebuffer
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// Specify the buffer to clear.
        /// </para>
        /// </param>
        /// <param name="drawBuffer">
        /// <para>
        /// Specify a particular draw buffer to clear.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// For color buffers, a pointer to a four-element vector specifying R, G, B and A values to clear the buffer to. For depth buffers, a pointer to a single depth value to clear the buffer to. For stencil buffers, a pointer to a single stencil value to clear the buffer to.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The value to clear a depth render buffer to.
        /// </para>
        /// </param>
        /// <param name="stencil">
        /// <para>
        /// The value to clear a stencil render buffer to.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glClearBufferuiv")]
        public static 
        unsafe void ClearBuffer(OpenTK.Graphics.OpenGL.ClearBuffer buffer, Int32 drawbuffer, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearBufferuiv((OpenTK.Graphics.OpenGL.ClearBuffer)buffer, (Int32)drawbuffer, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v4.1 and ARB_ES2_compatibility]
        /// 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 = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glClearDepthf")]
        public static 
        void ClearDepth(Single d)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClearDepthf((Single)d);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glClientActiveTexture")]
        public static 
        void ClientActiveTexture(OpenTK.Graphics.OpenGL.TextureUnit texture)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClientActiveTexture((OpenTK.Graphics.OpenGL.TextureUnit)texture);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Block and wait for a sync object to become signaled
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// The sync object whose status to wait on.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// A bitfield controlling the command flushing behavior. flags may be GL_SYNC_FLUSH_COMMANDS_BIT.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glClientWaitSync")]
        public static 
        OpenTK.Graphics.OpenGL.WaitSyncStatus ClientWaitSync(IntPtr sync, OpenTK.Graphics.OpenGL.WaitSyncFlags flags, Int64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glClientWaitSync((IntPtr)sync, (OpenTK.Graphics.OpenGL.WaitSyncFlags)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Block and wait for a sync object to become signaled
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// The sync object whose status to wait on.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// A bitfield controlling the command flushing behavior. flags may be GL_SYNC_FLUSH_COMMANDS_BIT.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glClientWaitSync")]
        public static 
        OpenTK.Graphics.OpenGL.WaitSyncStatus ClientWaitSync(IntPtr sync, OpenTK.Graphics.OpenGL.WaitSyncFlags flags, UInt64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glClientWaitSync((IntPtr)sync, (OpenTK.Graphics.OpenGL.WaitSyncFlags)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, Double[] equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = equation)
                {
                    Delegates.glClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, ref Double equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = &equation)
                {
                    Delegates.glClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glClipPlane")]
        public static 
        unsafe void ClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, Double* equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glColorMaski, specifies the index of the draw buffer whose color mask to set.
        /// </para>
        /// </param>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha are to be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components are written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", 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>[requires: v3.0]
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glColorMaski, specifies the index of the draw buffer whose color mask to set.
        /// </para>
        /// </param>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha are to be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components are written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", 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>[requires: v3.0]
        /// Enable and disable writing of frame buffer color components
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glColorMaski, specifies the index of the draw buffer whose color mask to set.
        /// </para>
        /// </param>
        /// <param name="red">
        /// <para>
        /// Specify whether red, green, blue, and alpha are to be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components are written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glColorMaterial")]
        public static 
        void ColorMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.ColorMaterialParameter mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorMaterial((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.ColorMaterialParameter)mode);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP3ui")]
        public static 
        void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP3ui")]
        public static 
        void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP3uiv")]
        public static 
        unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP3uiv")]
        public static 
        unsafe void ColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP4ui")]
        public static 
        void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP4ui")]
        public static 
        void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP4uiv")]
        public static 
        unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glColorP4uiv")]
        public static 
        unsafe void ColorP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorPointer((Int32)size, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glColorPointer")]
        public static 
        void ColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T3)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorSubTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] data)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glColorSubTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorSubTable")]
        public static 
        void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T5)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTable")]
        public static 
        void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                table = (T5)table_ptr.Target;
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, ref Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameterfv")]
        public static 
        unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, ref Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glColorTableParameteriv")]
        public static 
        unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.ColorTableParameterPName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.ColorTableParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// Compiles a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be compiled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v1.3]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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. 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>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage1D")]
        public static 
        void CompressedTexImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T6)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] data)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, 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. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage2D")]
        public static 
        void CompressedTexImage2D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T7)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Specify a three-dimensional texture image in a compressed format
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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. 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. 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. All implementations support 3D texture images that are at least 16 texels deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexImage3D")]
        public static 
        void CompressedTexImage3D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T8)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T6[,,] data)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage1D")]
        public static 
        void CompressedTexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T6)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] data)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage2D")]
        public static 
        void CompressedTexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T8)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCompressedTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T10[,,] data)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glCompressedTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glCompressedTexSubImage3D")]
        public static 
        void CompressedTexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T10)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionFilter1D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter1D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter1D")]
        public static 
        void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                image = (T5)image_ptr.Target;
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionFilter2D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glConvolutionFilter2D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionFilter2D")]
        public static 
        void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                image = (T6)image_ptr.Target;
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameterf")]
        public static 
        void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameterf((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Single)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameterfv")]
        public static 
        void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glConvolutionParameterfv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameterfv")]
        public static 
        unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameterfv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameteri")]
        public static 
        void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameteri((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Int32)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameteriv")]
        public static 
        void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glConvolutionParameteriv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glConvolutionParameteriv")]
        public static 
        unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.ConvolutionParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glConvolutionParameteriv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.ConvolutionParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_copy_buffer]
        /// Copy part of the data store of a buffer object to the data store of another buffer object
        /// </summary>
        /// <param name="readtarget">
        /// <para>
        /// Specifies the target from whose data store data should be read.
        /// </para>
        /// </param>
        /// <param name="writetarget">
        /// <para>
        /// Specifies the target to whose data store data should be written.
        /// </para>
        /// </param>
        /// <param name="readoffset">
        /// <para>
        /// Specifies the offset, in basic machine units, within the data store of readtarget from which data should be read.
        /// </para>
        /// </param>
        /// <param name="writeoffset">
        /// <para>
        /// Specifies the offset, in basic machine units, within the data store of writetarget to which data should be written.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size, in basic machine units, of the data to be copied from readtarget to writetarget.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_copy_buffer", Version = "3.0", EntryPoint = "glCopyBufferSubData")]
        public static 
        void CopyBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget readTarget, OpenTK.Graphics.OpenGL.BufferTarget writeTarget, IntPtr readOffset, IntPtr writeOffset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)readTarget, (OpenTK.Graphics.OpenGL.BufferTarget)writeTarget, (IntPtr)readOffset, (IntPtr)writeOffset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glCopyColorSubTable")]
        public static 
        void CopyColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyColorSubTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glCopyColorTable")]
        public static 
        void CopyColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glCopyConvolutionFilter1D")]
        public static 
        void CopyConvolutionFilter1D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyConvolutionFilter1D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glCopyConvolutionFilter2D")]
        public static 
        void CopyConvolutionFilter2D(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyConvolutionFilter2D((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_copy_image]
        /// Perform a raw data copy between two images
        /// </summary>
        /// <param name="srcName">
        /// <para>
        /// The name of a texture or renderbuffer object from which to copy.
        /// </para>
        /// </param>
        /// <param name="srcTarget">
        /// <para>
        /// The target representing the namespace of the source name srcName.
        /// </para>
        /// </param>
        /// <param name="srcLevel">
        /// <para>
        /// The mipmap level to read from the source.
        /// </para>
        /// </param>
        /// <param name="srcX">
        /// <para>
        /// The X coordinate of the left edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcY">
        /// <para>
        /// The Y coordinate of the top edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcZ">
        /// <para>
        /// The Z coordinate of the near edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="dstName">
        /// <para>
        /// The name of a texture or renderbuffer object to which to copy.
        /// </para>
        /// </param>
        /// <param name="dstTarget">
        /// <para>
        /// The target representing the namespace of the destination name dstName.
        /// </para>
        /// </param>
        /// <param name="dstX">
        /// <para>
        /// The X coordinate of the left edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstY">
        /// <para>
        /// The Y coordinate of the top edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstZ">
        /// <para>
        /// The Z coordinate of the near edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="srcWidth">
        /// <para>
        /// The width of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcHeight">
        /// <para>
        /// The height of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcDepth">
        /// <para>
        /// The depth of the region to be copied.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_copy_image", Version = "4.3", EntryPoint = "glCopyImageSubData")]
        public static 
        void CopyImageSubData(Int32 srcName, OpenTK.Graphics.OpenGL.ImageTarget srcTarget, Int32 srcLevel, Int32 srcX, Int32 srcY, Int32 srcZ, Int32 dstName, OpenTK.Graphics.OpenGL.ImageTarget dstTarget, Int32 dstLevel, Int32 dstX, Int32 dstY, Int32 dstZ, Int32 srcWidth, Int32 srcHeight, Int32 srcDepth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyImageSubData((UInt32)srcName, (OpenTK.Graphics.OpenGL.ImageTarget)srcTarget, (Int32)srcLevel, (Int32)srcX, (Int32)srcY, (Int32)srcZ, (UInt32)dstName, (OpenTK.Graphics.OpenGL.ImageTarget)dstTarget, (Int32)dstLevel, (Int32)dstX, (Int32)dstY, (Int32)dstZ, (Int32)srcWidth, (Int32)srcHeight, (Int32)srcDepth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_copy_image]
        /// Perform a raw data copy between two images
        /// </summary>
        /// <param name="srcName">
        /// <para>
        /// The name of a texture or renderbuffer object from which to copy.
        /// </para>
        /// </param>
        /// <param name="srcTarget">
        /// <para>
        /// The target representing the namespace of the source name srcName.
        /// </para>
        /// </param>
        /// <param name="srcLevel">
        /// <para>
        /// The mipmap level to read from the source.
        /// </para>
        /// </param>
        /// <param name="srcX">
        /// <para>
        /// The X coordinate of the left edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcY">
        /// <para>
        /// The Y coordinate of the top edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcZ">
        /// <para>
        /// The Z coordinate of the near edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="dstName">
        /// <para>
        /// The name of a texture or renderbuffer object to which to copy.
        /// </para>
        /// </param>
        /// <param name="dstTarget">
        /// <para>
        /// The target representing the namespace of the destination name dstName.
        /// </para>
        /// </param>
        /// <param name="dstX">
        /// <para>
        /// The X coordinate of the left edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstY">
        /// <para>
        /// The Y coordinate of the top edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstZ">
        /// <para>
        /// The Z coordinate of the near edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="srcWidth">
        /// <para>
        /// The width of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcHeight">
        /// <para>
        /// The height of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcDepth">
        /// <para>
        /// The depth of the region to be copied.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_copy_image", Version = "4.3", EntryPoint = "glCopyImageSubData")]
        public static 
        void CopyImageSubData(UInt32 srcName, OpenTK.Graphics.OpenGL.ImageTarget srcTarget, Int32 srcLevel, Int32 srcX, Int32 srcY, Int32 srcZ, UInt32 dstName, OpenTK.Graphics.OpenGL.ImageTarget dstTarget, Int32 dstLevel, Int32 dstX, Int32 dstY, Int32 dstZ, Int32 srcWidth, Int32 srcHeight, Int32 srcDepth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyImageSubData((UInt32)srcName, (OpenTK.Graphics.OpenGL.ImageTarget)srcTarget, (Int32)srcLevel, (Int32)srcX, (Int32)srcY, (Int32)srcZ, (UInt32)dstName, (OpenTK.Graphics.OpenGL.ImageTarget)dstTarget, (Int32)dstLevel, (Int32)dstX, (Int32)dstY, (Int32)dstZ, (Int32)srcWidth, (Int32)srcHeight, (Int32)srcDepth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCopyPixels")]
        public static 
        void CopyPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelCopyType type)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelCopyType)type);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_COMPRESSED_RED, GL_COMPRESSED_RG, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA. GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGB_ALPHA. GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_STENCIL_INDEX8, GL_RED, GL_RG, 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_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. The height of the texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Must be 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glCopyTexImage1D")]
        public static 
        void CopyTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_COMPRESSED_RED, GL_COMPRESSED_RG, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA. GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGB_ALPHA. GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_STENCIL_INDEX8, GL_RED, GL_RG, 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_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.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Must be 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glCopyTexImage2D")]
        public static 
        void CopyTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glCopyTexSubImage1D")]
        public static 
        void CopyTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCopyTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glCopyTexSubImage2D")]
        public static 
        void CopyTexSubImage2D(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Copy a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glCopyTexSubImage3D")]
        public static 
        void CopyTexSubImage3D(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Creates a program object
        /// </summary>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glCreateProgram")]
        public static 
        Int32 CreateProgram()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCreateProgram();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Creates a shader object
        /// </summary>
        /// <param name="shaderType">
        /// <para>
        /// Specifies the type of shader to be created. Must be one of GL_COMPUTE_SHADER, GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER, or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glCreateShader")]
        public static 
        Int32 CreateShader(OpenTK.Graphics.OpenGL.ShaderType type)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCreateShader((OpenTK.Graphics.OpenGL.ShaderType)type);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Create a stand-alone program from an array of null-terminated source code strings
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the type of shader to create.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of source code strings in the array strings.
        /// </para>
        /// </param>
        /// <param name="strings">
        /// <para>
        /// Specifies the address of an array of pointers to source code strings from which to create the program object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glCreateShaderProgramv")]
        public static 
        Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ShaderType type, Int32 count, String[] strings)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glCreateShaderProgramv((OpenTK.Graphics.OpenGL.ShaderType)type, (Int32)count, (String[])strings);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glCullFace")]
        public static 
        void CullFace(OpenTK.Graphics.OpenGL.CullFaceMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glCullFace((OpenTK.Graphics.OpenGL.CullFaceMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageCallback")]
        public static 
        void DebugMessageCallback(DebugProc callback, IntPtr userParam)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDebugMessageCallback((DebugProc)callback, (IntPtr)userParam);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageCallback")]
        public static 
        void DebugMessageCallback<T1>(DebugProc callback, [InAttribute, OutAttribute] T1[] userParam)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
            try
            {
                Delegates.glDebugMessageCallback((DebugProc)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
            }
            finally
            {
                userParam_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageCallback")]
        public static 
        void DebugMessageCallback<T1>(DebugProc callback, [InAttribute, OutAttribute] T1[,] userParam)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
            try
            {
                Delegates.glDebugMessageCallback((DebugProc)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
            }
            finally
            {
                userParam_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageCallback")]
        public static 
        void DebugMessageCallback<T1>(DebugProc callback, [InAttribute, OutAttribute] T1[,,] userParam)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
            try
            {
                Delegates.glDebugMessageCallback((DebugProc)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
            }
            finally
            {
                userParam_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Specify a callback to receive debugging messages from the GL
        /// </summary>
        /// <param name="callback">
        /// <para>
        /// The address of a callback function that will be called when a debug message is generated.
        /// </para>
        /// </param>
        /// <param name="userParam">
        /// <para>
        /// A user supplied pointer that will be passed on each invocation of callback.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageCallback")]
        public static 
        void DebugMessageCallback<T1>(DebugProc callback, [InAttribute, OutAttribute] ref T1 userParam)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle userParam_ptr = GCHandle.Alloc(userParam, GCHandleType.Pinned);
            try
            {
                Delegates.glDebugMessageCallback((DebugProc)callback, (IntPtr)userParam_ptr.AddrOfPinnedObject());
                userParam = (T1)userParam_ptr.Target;
            }
            finally
            {
                userParam_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, Int32[] ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = ids)
                {
                    Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, ref Int32 ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = &ids)
                {
                    Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, Int32* ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, UInt32[] ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = ids)
                {
                    Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, ref UInt32 ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = &ids)
                {
                    Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids_ptr, (bool)enabled);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Control the reporting of debug messages in a debug context
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of debug messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The length of the array ids.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
        /// </para>
        /// </param>
        /// <param name="enabled">
        /// <para>
        /// A Boolean flag determining whether the selected messages should be enabled or disabled.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageControl")]
        public static 
        unsafe void DebugMessageControl(OpenTK.Graphics.OpenGL.DebugSourceControl source, OpenTK.Graphics.OpenGL.DebugTypeControl type, OpenTK.Graphics.OpenGL.DebugSeverityControl severity, Int32 count, UInt32* ids, bool enabled)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDebugMessageControl((OpenTK.Graphics.OpenGL.DebugSourceControl)source, (OpenTK.Graphics.OpenGL.DebugTypeControl)type, (OpenTK.Graphics.OpenGL.DebugSeverityControl)severity, (Int32)count, (UInt32*)ids, (bool)enabled);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
        public static 
        void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, Int32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, String buf)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDebugMessageInsert((OpenTK.Graphics.OpenGL.DebugSourceExternal)source, (OpenTK.Graphics.OpenGL.DebugType)type, (UInt32)id, (OpenTK.Graphics.OpenGL.DebugSeverity)severity, (Int32)length, (String)buf);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Inject an application-supplied message into the debug message queue
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message to insert.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the debug message insert.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The user-supplied identifier of the message to insert.
        /// </para>
        /// </param>
        /// <param name="severity">
        /// <para>
        /// The severity of the debug messages to insert.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length string contained in the character array whose address is given by message.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The address of a character array containing the message to insert.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glDebugMessageInsert")]
        public static 
        void DebugMessageInsert(OpenTK.Graphics.OpenGL.DebugSourceExternal source, OpenTK.Graphics.OpenGL.DebugType type, UInt32 id, OpenTK.Graphics.OpenGL.DebugSeverity severity, Int32 length, String buf)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDebugMessageInsert((OpenTK.Graphics.OpenGL.DebugSourceExternal)source, (OpenTK.Graphics.OpenGL.DebugType)type, (UInt32)id, (OpenTK.Graphics.OpenGL.DebugSeverity)severity, (Int32)length, (String)buf);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v2.0]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        void DeleteProgramPipelines(Int32 n, Int32[] pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* pipelines_ptr = pipelines)
                {
                    Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        void DeleteProgramPipelines(Int32 n, ref Int32 pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* pipelines_ptr = &pipelines)
                {
                    Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        unsafe void DeleteProgramPipelines(Int32 n, Int32* pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        void DeleteProgramPipelines(Int32 n, UInt32[] pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* pipelines_ptr = pipelines)
                {
                    Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        void DeleteProgramPipelines(Int32 n, ref UInt32 pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* pipelines_ptr = &pipelines)
                {
                    Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Delete program pipeline objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline objects to delete.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of names of program pipeline objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glDeleteProgramPipelines")]
        public static 
        unsafe void DeleteProgramPipelines(Int32 n, UInt32* pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteProgramPipelines((Int32)n, (UInt32*)pipelines);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        void DeleteSamplers(Int32 count, Int32[] samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* samplers_ptr = samplers)
                {
                    Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        void DeleteSamplers(Int32 count, ref Int32 samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* samplers_ptr = &samplers)
                {
                    Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        unsafe void DeleteSamplers(Int32 count, Int32* samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        void DeleteSamplers(Int32 count, UInt32[] samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* samplers_ptr = samplers)
                {
                    Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        void DeleteSamplers(Int32 count, ref UInt32 samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* samplers_ptr = &samplers)
                {
                    Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Delete named sampler objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array of sampler objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glDeleteSamplers")]
        public static 
        unsafe void DeleteSamplers(Int32 count, UInt32* samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteSamplers((Int32)count, (UInt32*)samplers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Deletes a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// Deletes a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies the shader object to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Delete a sync object
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// The sync object to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        void DeleteTransformFeedback(Int32 n, Int32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = ids)
                {
                    Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        void DeleteTransformFeedback(Int32 n, ref Int32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = &ids)
                {
                    Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        unsafe void DeleteTransformFeedback(Int32 n, Int32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        void DeleteTransformFeedback(Int32 n, UInt32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = ids)
                {
                    Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        void DeleteTransformFeedback(Int32 n, ref UInt32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = &ids)
                {
                    Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Delete transform feedback objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback objects to delete.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of names of transform feedback objects to delete.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glDeleteTransformFeedbacks")]
        public static 
        unsafe void DeleteTransformFeedback(Int32 n, UInt32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDeleteTransformFeedbacks((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Delete vertex array objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies the address of an array containing the n names of the objects to be deleted.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDepthFunc")]
        public static 
        void DepthFunc(OpenTK.Graphics.OpenGL.DepthFunction func)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthFunc((OpenTK.Graphics.OpenGL.DepthFunction)func);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        void DepthRangeArray(Int32 first, Int32 count, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        void DepthRangeArray(Int32 first, Int32 count, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        unsafe void DepthRangeArray(Int32 first, Int32 count, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        void DepthRangeArray(UInt32 first, Int32 count, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        void DepthRangeArray(UInt32 first, Int32 count, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified set of viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of viewports whose depth range to update.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the near and far values for the depth range of each modified viewport.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeArrayv")]
        public static 
        unsafe void DepthRangeArray(UInt32 first, Int32 count, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRangeArrayv((UInt32)first, (Int32)count, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// 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 = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glDepthRangef")]
        public static 
        void DepthRange(Single n, Single f)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRangef((Single)n, (Single)f);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <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 = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeIndexed")]
        public static 
        void DepthRangeIndexed(Int32 index, Double n, Double f)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRangeIndexed((UInt32)index, (Double)n, (Double)f);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Specify mapping of depth values from normalized device coordinates to window coordinates for a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose depth range to update.
        /// </para>
        /// </param>
        /// <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>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glDepthRangeIndexed")]
        public static 
        void DepthRangeIndexed(UInt32 index, Double n, Double f)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDepthRangeIndexed((UInt32)index, (Double)n, (Double)f);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDisable")]
        public static 
        void Disable(OpenTK.Graphics.OpenGL.EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisable((OpenTK.Graphics.OpenGL.EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.1][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glDisableClientState")]
        public static 
        void DisableClientState(OpenTK.Graphics.OpenGL.ArrayCap array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisableClientState((OpenTK.Graphics.OpenGL.ArrayCap)array);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glDisablei")]
        public static 
        void Disable(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisablei((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glDisablei")]
        public static 
        void Disable(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDisablei((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v4.3 and ARB_compute_shader]
        /// Launch one or more compute work groups
        /// </summary>
        /// <param name="num_groups_x">
        /// <para>
        /// The number of work groups to be launched in the X dimension.
        /// </para>
        /// </param>
        /// <param name="num_groups_y">
        /// <para>
        /// The number of work groups to be launched in the Y dimension.
        /// </para>
        /// </param>
        /// <param name="num_groups_z">
        /// <para>
        /// The number of work groups to be launched in the Z dimension.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_compute_shader", Version = "4.3", EntryPoint = "glDispatchCompute")]
        public static 
        void DispatchCompute(Int32 num_groups_x, Int32 num_groups_y, Int32 num_groups_z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDispatchCompute((UInt32)num_groups_x, (UInt32)num_groups_y, (UInt32)num_groups_z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_compute_shader]
        /// Launch one or more compute work groups
        /// </summary>
        /// <param name="num_groups_x">
        /// <para>
        /// The number of work groups to be launched in the X dimension.
        /// </para>
        /// </param>
        /// <param name="num_groups_y">
        /// <para>
        /// The number of work groups to be launched in the Y dimension.
        /// </para>
        /// </param>
        /// <param name="num_groups_z">
        /// <para>
        /// The number of work groups to be launched in the Z dimension.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_compute_shader", Version = "4.3", EntryPoint = "glDispatchCompute")]
        public static 
        void DispatchCompute(UInt32 num_groups_x, UInt32 num_groups_y, UInt32 num_groups_z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDispatchCompute((UInt32)num_groups_x, (UInt32)num_groups_y, (UInt32)num_groups_z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_compute_shader]
        /// Launch one or more compute work groups using parameters stored in a buffer
        /// </summary>
        /// <param name="indirect">
        /// <para>
        /// The offset into the buffer object currently bound to the GL_DISPATCH_INDIRECT_BUFFER buffer target at which the dispatch parameters are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_compute_shader", Version = "4.3", EntryPoint = "glDispatchComputeIndirect")]
        public static 
        void DispatchComputeIndirect(IntPtr indirect)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDispatchComputeIndirect((IntPtr)indirect);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawArrays")]
        public static 
        void DrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArrays((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawArraysIndirect")]
        public static 
        void DrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, IntPtr indirect)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawArraysIndirect")]
        public static 
        void DrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[] indirect)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawArraysIndirect")]
        public static 
        void DrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,] indirect)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawArraysIndirect")]
        public static 
        void DrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,,] indirect)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawArraysIndirect")]
        public static 
        void DrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] ref T1 indirect)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject());
                indirect = (T1)indirect_ptr.Target;
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a range of 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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawArraysInstanced")]
        public static 
        void DrawArraysInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArraysInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a range of elements with offset applied to instanced attributes
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawArraysInstancedBaseInstance")]
        public static 
        void DrawArraysInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 instancecount, Int32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArraysInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count, (Int32)instancecount, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a range of elements with offset applied to instanced attributes
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawArraysInstancedBaseInstance")]
        public static 
        void DrawArraysInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 instancecount, UInt32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawArraysInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count, (Int32)instancecount, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, and GL_FRONT_AND_BACK are accepted. The initial value is GL_FRONT for single-buffered contexts, and GL_BACK for double-buffered contexts.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawBuffer")]
        public static 
        void DrawBuffer(OpenTK.Graphics.OpenGL.DrawBufferMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawBuffer((OpenTK.Graphics.OpenGL.DrawBufferMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.DrawBuffersEnum[] bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.DrawBuffersEnum* bufs_ptr = bufs)
                {
                    Delegates.glDrawBuffers((Int32)n, (OpenTK.Graphics.OpenGL.DrawBuffersEnum*)bufs_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        void DrawBuffers(Int32 n, ref OpenTK.Graphics.OpenGL.DrawBuffersEnum bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.DrawBuffersEnum* bufs_ptr = &bufs)
                {
                    Delegates.glDrawBuffers((Int32)n, (OpenTK.Graphics.OpenGL.DrawBuffersEnum*)bufs_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glDrawBuffers")]
        public static 
        unsafe void DrawBuffers(Int32 n, OpenTK.Graphics.OpenGL.DrawBuffersEnum* bufs)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawBuffers((Int32)n, (OpenTK.Graphics.OpenGL.DrawBuffersEnum*)bufs);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glDrawElements")]
        public static 
        void DrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsBaseVertex")]
        public static 
        void DrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawElementsIndirect")]
        public static 
        void DrawElementsIndirect(OpenTK.Graphics.OpenGL.ArbDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbDrawIndirect type, IntPtr indirect)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbDrawIndirect)type, (IntPtr)indirect);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawElementsIndirect")]
        public static 
        void DrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbDrawIndirect type, [InAttribute, OutAttribute] T2[] indirect)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawElementsIndirect")]
        public static 
        void DrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbDrawIndirect type, [InAttribute, OutAttribute] T2[,] indirect)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawElementsIndirect")]
        public static 
        void DrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbDrawIndirect type, [InAttribute, OutAttribute] T2[,,] indirect)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing the draw parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_indirect", Version = "1.2", EntryPoint = "glDrawElementsIndirect")]
        public static 
        void DrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbDrawIndirect type, [InAttribute, OutAttribute] ref T2 indirect)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject());
                indirect = (T2)indirect_ptr.Target;
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glDrawElementsInstanced")]
        public static 
        void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, UInt32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Draw multiple instances of a set of elements with offset applied to instanced attributes
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseInstance")]
        public static 
        void DrawElementsInstancedBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (UInt32)baseinstance);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawElementsInstancedBaseVertex")]
        public static 
        void DrawElementsInstancedBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, Int32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_base_instance]
        /// Render multiple instances of a set of primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the indexed geometry that should be drawn.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        /// <param name="baseinstance">
        /// <para>
        /// Specifies the base instance for use in fetching instanced vertex attributes.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_base_instance", Version = "4.2", EntryPoint = "glDrawElementsInstancedBaseVertexBaseInstance")]
        public static 
        void DrawElementsInstancedBaseVertexBaseInstance<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 instancecount, Int32 basevertex, UInt32 baseinstance)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawElementsInstancedBaseVertexBaseInstance((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)instancecount, (Int32)basevertex, (UInt32)baseinstance);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawPixels((Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glDrawPixels")]
        public static 
        void DrawPixels<T4>(Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T4)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                indices = (T5)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
            where T5 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glDrawRangeElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glDrawRangeElements")]
        public static 
        void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                indices = (T5)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
                indices = (T5)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawRangeElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render primitives from array data with a per-element offset
        /// </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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a constant that should be added to each element of indices when chosing elements from the enabled vertex arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glDrawRangeElementsBaseVertex")]
        public static 
        void DrawRangeElementsBaseVertex<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)basevertex);
                indices = (T5)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.0 and ARB_transform_feedback2]
        /// Render primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "4.0", EntryPoint = "glDrawTransformFeedback")]
        public static 
        void DrawTransformFeedback(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedback((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.0 and ARB_transform_feedback2]
        /// Render primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "4.0", EntryPoint = "glDrawTransformFeedback")]
        public static 
        void DrawTransformFeedback(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedback((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_transform_feedback_instanced]
        /// Render multiple instances of primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the geometry to render.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback_instanced", Version = "4.2", EntryPoint = "glDrawTransformFeedbackInstanced")]
        public static 
        void DrawTransformFeedbackInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 id, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_transform_feedback_instanced]
        /// Render multiple instances of primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the geometry to render.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback_instanced", Version = "4.2", EntryPoint = "glDrawTransformFeedbackInstanced")]
        public static 
        void DrawTransformFeedbackInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 id, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.0 and ARB_transform_feedback3]
        /// Render primitives using a count derived from a specifed stream of a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="stream">
        /// <para>
        /// Specifies the index of the transform feedback stream from which to retrieve a primitive count.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "4.0", EntryPoint = "glDrawTransformFeedbackStream")]
        public static 
        void DrawTransformFeedbackStream(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 id, Int32 stream)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackStream((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (UInt32)stream);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.0 and ARB_transform_feedback3]
        /// Render primitives using a count derived from a specifed stream of a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="stream">
        /// <para>
        /// Specifies the index of the transform feedback stream from which to retrieve a primitive count.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "4.0", EntryPoint = "glDrawTransformFeedbackStream")]
        public static 
        void DrawTransformFeedbackStream(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 id, UInt32 stream)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackStream((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (UInt32)stream);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_transform_feedback_instanced]
        /// Render multiple instances of primitives using a count derived from a specifed stream of a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="stream">
        /// <para>
        /// Specifies the index of the transform feedback stream from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the geometry to render.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback_instanced", Version = "4.2", EntryPoint = "glDrawTransformFeedbackStreamInstanced")]
        public static 
        void DrawTransformFeedbackStreamInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 id, Int32 stream, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackStreamInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (UInt32)stream, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_transform_feedback_instanced]
        /// Render multiple instances of primitives using a count derived from a specifed stream of a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="stream">
        /// <para>
        /// Specifies the index of the transform feedback stream from which to retrieve a primitive count.
        /// </para>
        /// </param>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the geometry to render.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback_instanced", Version = "4.2", EntryPoint = "glDrawTransformFeedbackStreamInstanced")]
        public static 
        void DrawTransformFeedbackStreamInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 id, UInt32 stream, Int32 instancecount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glDrawTransformFeedbackStreamInstanced((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)id, (UInt32)stream, (Int32)instancecount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glEdgeFlagPointer")]
        public static 
        void EdgeFlagPointer<T1>(Int32 stride, [InAttribute, OutAttribute] 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());
                pointer = (T1)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glEdgeFlagv")]
        public static 
        void EdgeFlag(bool[] flag)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* flag_ptr = flag)
                {
                    Delegates.glEdgeFlagv((bool*)flag_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// Enable or disable server-side GL capabilities
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEnable")]
        public static 
        void Enable(OpenTK.Graphics.OpenGL.EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnable((OpenTK.Graphics.OpenGL.EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glEnableClientState")]
        public static 
        void EnableClientState(OpenTK.Graphics.OpenGL.ArrayCap array)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnableClientState((OpenTK.Graphics.OpenGL.ArrayCap)array);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Enable or disable server-side GL capabilities
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glEnablei")]
        public static 
        void Enable(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnablei((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// 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 = "VERSION_3_0", Version = "3.0", EntryPoint = "glEnablei")]
        public static 
        void Enable(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEnablei((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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
        }

        /// <summary>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", 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
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glEndConditionalRender")]
        public static 
        void EndConditionalRender()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndConditionalRender();
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glEndList")]
        public static 
        void EndList()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndList();
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.5]</summary>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glEndQuery")]
        public static 
        void EndQuery(OpenTK.Graphics.OpenGL.QueryTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndQuery((OpenTK.Graphics.OpenGL.QueryTarget)target);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_transform_feedback3]</summary>
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glEndQueryIndexed")]
        public static 
        void EndQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndQueryIndexed((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_transform_feedback3]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glEndQueryIndexed")]
        public static 
        void EndQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndQueryIndexed((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glEndTransformFeedback")]
        public static 
        void EndTransformFeedback()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEndTransformFeedback();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalMesh1")]
        public static 
        void EvalMesh1(OpenTK.Graphics.OpenGL.MeshMode1 mode, Int32 i1, Int32 i2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalMesh1((OpenTK.Graphics.OpenGL.MeshMode1)mode, (Int32)i1, (Int32)i2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glEvalMesh2")]
        public static 
        void EvalMesh2(OpenTK.Graphics.OpenGL.MeshMode2 mode, Int32 i1, Int32 i2, Int32 j1, Int32 j2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glEvalMesh2((OpenTK.Graphics.OpenGL.MeshMode2)mode, (Int32)i1, (Int32)i2, (Int32)j1, (Int32)j2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] Single[] buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* buffer_ptr = buffer)
                {
                    Delegates.glFeedbackBuffer((Int32)size, (OpenTK.Graphics.OpenGL.FeedbackType)type, (Single*)buffer_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] out Single buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* buffer_ptr = &buffer)
                {
                    Delegates.glFeedbackBuffer((Int32)size, (OpenTK.Graphics.OpenGL.FeedbackType)type, (Single*)buffer_ptr);
                    buffer = *buffer_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFeedbackBuffer")]
        public static 
        unsafe void FeedbackBuffer(Int32 size, OpenTK.Graphics.OpenGL.FeedbackType type, [OutAttribute] Single* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFeedbackBuffer((Int32)size, (OpenTK.Graphics.OpenGL.FeedbackType)type, (Single*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Create a new sync object and insert it into the GL command stream
        /// </summary>
        /// <param name="condition">
        /// <para>
        /// Specifies the condition that must be met to set the sync object's state to signaled. condition must be GL_SYNC_GPU_COMMANDS_COMPLETE.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// Specifies a bitwise combination of flags controlling the behavior of the sync object. No flags are presently defined for this operation and flags must be zero. flags is a placeholder for anticipated future extensions of fence sync object capabilities.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glFenceSync")]
        public static 
        IntPtr FenceSync(OpenTK.Graphics.OpenGL.SyncCondition condition, Int32 flags)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glFenceSync((OpenTK.Graphics.OpenGL.SyncCondition)condition, (UInt32)flags);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Create a new sync object and insert it into the GL command stream
        /// </summary>
        /// <param name="condition">
        /// <para>
        /// Specifies the condition that must be met to set the sync object's state to signaled. condition must be GL_SYNC_GPU_COMMANDS_COMPLETE.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// Specifies a bitwise combination of flags controlling the behavior of the sync object. No flags are presently defined for this operation and flags must be zero. flags is a placeholder for anticipated future extensions of fence sync object capabilities.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glFenceSync")]
        public static 
        IntPtr FenceSync(OpenTK.Graphics.OpenGL.SyncCondition condition, UInt32 flags)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glFenceSync((OpenTK.Graphics.OpenGL.SyncCondition)condition, (UInt32)flags);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Block until all GL execution is complete
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFinish")]
        public static 
        void Finish()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFinish();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Force execution of GL commands in finite time
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glFlush")]
        public static 
        void Flush()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFlush();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_map_buffer_range]
        /// Indicate modifications to a range of a mapped buffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the flush operation. target must be GL_ARRAY_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_BUFFER.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the start of the buffer subrange, in basic machine units.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the buffer subrange, in basic machine units.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_map_buffer_range", Version = "3.0", EntryPoint = "glFlushMappedBufferRange")]
        public static 
        void FlushMappedBufferRange(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFlushMappedBufferRange((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogCoordPointer((OpenTK.Graphics.OpenGL.FogPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((OpenTK.Graphics.OpenGL.FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((OpenTK.Graphics.OpenGL.FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glFogCoordPointer((OpenTK.Graphics.OpenGL.FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glFogCoordPointer")]
        public static 
        void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.FogPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.FogPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogf")]
        public static 
        void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogf((OpenTK.Graphics.OpenGL.FogParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogfv")]
        public static 
        void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glFogfv((OpenTK.Graphics.OpenGL.FogParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogfv")]
        public static 
        unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogfv((OpenTK.Graphics.OpenGL.FogParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogi")]
        public static 
        void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogi((OpenTK.Graphics.OpenGL.FogParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogiv")]
        public static 
        void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glFogiv((OpenTK.Graphics.OpenGL.FogParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFogiv")]
        public static 
        unsafe void Fog(OpenTK.Graphics.OpenGL.FogParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFogiv((OpenTK.Graphics.OpenGL.FogParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_framebuffer_no_attachments]
        /// Set a named parameter of a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be modified.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// The new value for the parameter named pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glFramebufferParameteri")]
        public static 
        void FramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferParameteri((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferDefaultParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Attach a renderbuffer as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer.
        /// </para>
        /// </param>
        /// <param name="renderbuffertarget">
        /// <para>
        /// Specifies the renderbuffer target and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of an existing renderbuffer object of type renderbuffertarget to attach.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferRenderbuffer")]
        public static 
        void FramebufferRenderbuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferRenderbuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Attach a renderbuffer as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer.
        /// </para>
        /// </param>
        /// <param name="renderbuffertarget">
        /// <para>
        /// Specifies the renderbuffer target and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of an existing renderbuffer object of type renderbuffertarget to attach.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferRenderbuffer")]
        public static 
        void FramebufferRenderbuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferRenderbuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_2", Version = "1.2", EntryPoint = "glFramebufferTexture")]
        public static 
        void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_2", Version = "1.2", EntryPoint = "glFramebufferTexture")]
        public static 
        void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture1D")]
        public static 
        void FramebufferTexture1D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture1D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture1D")]
        public static 
        void FramebufferTexture1D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture1D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture2D")]
        public static 
        void FramebufferTexture2D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture2D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture2D")]
        public static 
        void FramebufferTexture2D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture2D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture3D")]
        public static 
        void FramebufferTexture3D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture3D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0 and ARB_framebuffer_object]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTexture3D")]
        public static 
        void FramebufferTexture3D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTexture3D((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTextureLayer")]
        public static 
        void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureLayer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glFramebufferTextureLayer")]
        public static 
        void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFramebufferTextureLayer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glFrontFace")]
        public static 
        void FrontFace(OpenTK.Graphics.OpenGL.FrontFaceDirection mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glFrontFace((OpenTK.Graphics.OpenGL.FrontFaceDirection)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        unsafe void GenBuffers(Int32 n, [OutAttribute] Int32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        void GenBuffers(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenBuffers")]
        public static 
        unsafe void GenBuffers(Int32 n, [OutAttribute] UInt32* buffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenBuffers((Int32)n, (UInt32*)buffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate mipmaps for a specified texture target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture whose mimaps to generate is bound. target must be GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenerateMipmap")]
        public static 
        void GenerateMipmap(OpenTK.Graphics.OpenGL.GenerateMipmapTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenerateMipmap((OpenTK.Graphics.OpenGL.GenerateMipmapTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [OutAttribute] 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        void GenFramebuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenFramebuffers")]
        public static 
        unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenFramebuffers((Int32)n, (UInt32*)framebuffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        void GenProgramPipelines(Int32 n, [OutAttribute] Int32[] pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* pipelines_ptr = pipelines)
                {
                    Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        void GenProgramPipelines(Int32 n, [OutAttribute] out Int32 pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* pipelines_ptr = &pipelines)
                {
                    Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                    pipelines = *pipelines_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        unsafe void GenProgramPipelines(Int32 n, [OutAttribute] Int32* pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        void GenProgramPipelines(Int32 n, [OutAttribute] UInt32[] pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* pipelines_ptr = pipelines)
                {
                    Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        void GenProgramPipelines(Int32 n, [OutAttribute] out UInt32 pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* pipelines_ptr = &pipelines)
                {
                    Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines_ptr);
                    pipelines = *pipelines_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Reserve program pipeline object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of program pipeline object names to reserve.
        /// </para>
        /// </param>
        /// <param name="pipelines">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGenProgramPipelines")]
        public static 
        unsafe void GenProgramPipelines(Int32 n, [OutAttribute] UInt32* pipelines)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenProgramPipelines((Int32)n, (UInt32*)pipelines);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        unsafe void GenQueries(Int32 n, [OutAttribute] Int32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        void GenQueries(Int32 n, [OutAttribute] 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGenQueries")]
        public static 
        unsafe void GenQueries(Int32 n, [OutAttribute] UInt32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenQueries((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [OutAttribute] 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>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        void GenRenderbuffers(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGenRenderbuffers")]
        public static 
        unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenRenderbuffers((Int32)n, (UInt32*)renderbuffers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        void GenSamplers(Int32 count, [OutAttribute] Int32[] samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* samplers_ptr = samplers)
                {
                    Delegates.glGenSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        void GenSamplers(Int32 count, [OutAttribute] out Int32 samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* samplers_ptr = &samplers)
                {
                    Delegates.glGenSamplers((Int32)count, (UInt32*)samplers_ptr);
                    samplers = *samplers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        unsafe void GenSamplers(Int32 count, [OutAttribute] Int32* samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenSamplers((Int32)count, (UInt32*)samplers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        void GenSamplers(Int32 count, [OutAttribute] UInt32[] samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* samplers_ptr = samplers)
                {
                    Delegates.glGenSamplers((Int32)count, (UInt32*)samplers_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        void GenSamplers(Int32 count, [OutAttribute] out UInt32 samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* samplers_ptr = &samplers)
                {
                    Delegates.glGenSamplers((Int32)count, (UInt32*)samplers_ptr);
                    samplers = *samplers_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Generate sampler object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of sampler object names to generate.
        /// </para>
        /// </param>
        /// <param name="samplers">
        /// <para>
        /// Specifies an array in which the generated sampler object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGenSamplers")]
        public static 
        unsafe void GenSamplers(Int32 count, [OutAttribute] UInt32* samplers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenSamplers((Int32)count, (UInt32*)samplers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [OutAttribute] 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [OutAttribute] 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        void GenTextures(Int32 n, [OutAttribute] 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGenTextures")]
        public static 
        unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTextures((Int32)n, (UInt32*)textures);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        void GenTransformFeedback(Int32 n, [OutAttribute] Int32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = ids)
                {
                    Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        void GenTransformFeedback(Int32 n, [OutAttribute] out Int32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* ids_ptr = &ids)
                {
                    Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                    ids = *ids_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        unsafe void GenTransformFeedback(Int32 n, [OutAttribute] Int32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        void GenTransformFeedback(Int32 n, [OutAttribute] UInt32[] ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = ids)
                {
                    Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        void GenTransformFeedback(Int32 n, [OutAttribute] out UInt32 ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* ids_ptr = &ids)
                {
                    Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids_ptr);
                    ids = *ids_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Reserve transform feedback object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of transform feedback object names to reserve.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array of into which the reserved names will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glGenTransformFeedbacks")]
        public static 
        unsafe void GenTransformFeedback(Int32 n, [OutAttribute] UInt32* ids)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenTransformFeedbacks((Int32)n, (UInt32*)ids);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        unsafe void GenVertexArrays(Int32 n, [OutAttribute] Int32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [OutAttribute] 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>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        void GenVertexArrays(Int32 n, [OutAttribute] 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Generate vertex array object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of vertex array object names to generate.
        /// </para>
        /// </param>
        /// <param name="arrays">
        /// <para>
        /// Specifies an array in which the generated vertex array object names are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", Version = "3.0", EntryPoint = "glGenVertexArrays")]
        public static 
        unsafe void GenVertexArrays(Int32 n, [OutAttribute] UInt32* arrays)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGenVertexArrays((Int32)n, (UInt32*)arrays);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        unsafe void GetActiveAtomicCounterBuffer(Int32 program, Int32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_atomic_counters]
        /// Retrieve information about the set of active atomic counter buffers for a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object from which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="bufferIndex">
        /// <para>
        /// Specifies index of an active atomic counter buffer.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies which parameter of the atomic counter buffer to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_atomic_counters", Version = "4.2", EntryPoint = "glGetActiveAtomicCounterBufferiv")]
        public static 
        unsafe void GetActiveAtomicCounterBuffer(UInt32 program, UInt32 bufferIndex, OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAtomicCounterBufferiv((UInt32)program, (UInt32)bufferIndex, (OpenTK.Graphics.OpenGL.AtomicCounterBufferParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        unsafe void GetActiveAttrib(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveAttrib")]
        public static 
        unsafe void GetActiveAttrib(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveAttrib((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query the subroutine name.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of an array into which the name of the shader subroutine uniform will be written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineName")]
        public static 
        void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveSubroutineName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query the subroutine name.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of an array into which the name of the shader subroutine uniform will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineName")]
        public static 
        unsafe void GetActiveSubroutineName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query the subroutine name.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of an array into which the name of the shader subroutine uniform will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineName")]
        public static 
        void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveSubroutineName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query the subroutine name.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of an array into which the name of the shader subroutine uniform will be written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineName")]
        public static 
        unsafe void GetActiveSubroutineName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        unsafe void GetActiveSubroutineUniform(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query a property of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader subroutine uniform to query. pname must be GL_NUM_COMPATIBLE_SUBROUTINES, GL_COMPATIBLE_SUBROUTINES, GL_UNIFORM_SIZE or GL_UNIFORM_NAME_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformiv")]
        public static 
        unsafe void GetActiveSubroutineUniform(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter pname, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineUniformiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (OpenTK.Graphics.OpenGL.ActiveSubroutineUniformParameter)pname, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which is written the number of characters copied into name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of a buffer that will receive the name of the specified shader subroutine uniform.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformName")]
        public static 
        void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveSubroutineUniformName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which is written the number of characters copied into name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of a buffer that will receive the name of the specified shader subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformName")]
        public static 
        unsafe void GetActiveSubroutineUniformName(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineUniformName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which is written the number of characters copied into name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of a buffer that will receive the name of the specified shader subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformName")]
        public static 
        void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetActiveSubroutineUniformName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Query the name of an active shader subroutine uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing the subroutine.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the shader subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="bufsize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which is written the number of characters copied into name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the address of a buffer that will receive the name of the specified shader subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetActiveSubroutineUniformName")]
        public static 
        unsafe void GetActiveSubroutineUniformName(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, UInt32 index, Int32 bufsize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveSubroutineUniformName((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (UInt32)index, (Int32)bufsize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveUniformType* type_ptr = &type)
                {
                    Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveUniformType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        unsafe void GetActiveUniform(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveUniformType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveUniformType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveUniformType* type_ptr = &type)
                {
                    Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveUniformType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetActiveUniform")]
        public static 
        unsafe void GetActiveUniform(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveUniformType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniform((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveUniformType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        unsafe void GetActiveUniformBlock(Int32 program, Int32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query information about an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable to receive the result of the query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockiv")]
        public static 
        unsafe void GetActiveUniformBlock(UInt32 program, UInt32 uniformBlockIndex, OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockiv((UInt32)program, (UInt32)uniformBlockIndex, (OpenTK.Graphics.OpenGL.ActiveUniformBlockParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the name of an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer addressed by uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of characters that were written to uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to receive the name of the uniform block at uniformBlockIndex.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)uniformBlockName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the name of an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer addressed by uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of characters that were written to uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to receive the name of the uniform block at uniformBlockIndex.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        unsafe void GetActiveUniformBlockName(Int32 program, Int32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (StringBuilder)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the name of an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer addressed by uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of characters that were written to uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to receive the name of the uniform block at uniformBlockIndex.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)uniformBlockName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the name of an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// Specifies the index of the uniform block within program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer addressed by uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of characters that were written to uniformBlockName.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to receive the name of the uniform block at uniformBlockIndex.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformBlockName")]
        public static 
        unsafe void GetActiveUniformBlockName(UInt32 program, UInt32 uniformBlockIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformBlockName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformBlockName((UInt32)program, (UInt32)uniformBlockIndex, (Int32)bufSize, (Int32*)length, (StringBuilder)uniformBlockName);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query the name of an active uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program containing the active uniform index uniformIndex.
        /// </para>
        /// </param>
        /// <param name="uniformIndex">
        /// <para>
        /// Specifies the index of the active uniform whose name to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer, in units of GLchar, of the buffer whose address is specified in uniformName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by uniformName.
        /// </para>
        /// </param>
        /// <param name="uniformName">
        /// <para>
        /// Specifies the address of a buffer into which the GL will place the name of the active uniform at uniformIndex within program.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)uniformName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query the name of an active uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program containing the active uniform index uniformIndex.
        /// </para>
        /// </param>
        /// <param name="uniformIndex">
        /// <para>
        /// Specifies the index of the active uniform whose name to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer, in units of GLchar, of the buffer whose address is specified in uniformName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by uniformName.
        /// </para>
        /// </param>
        /// <param name="uniformName">
        /// <para>
        /// Specifies the address of a buffer into which the GL will place the name of the active uniform at uniformIndex within program.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        unsafe void GetActiveUniformName(Int32 program, Int32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (StringBuilder)uniformName);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query the name of an active uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program containing the active uniform index uniformIndex.
        /// </para>
        /// </param>
        /// <param name="uniformIndex">
        /// <para>
        /// Specifies the index of the active uniform whose name to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer, in units of GLchar, of the buffer whose address is specified in uniformName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by uniformName.
        /// </para>
        /// </param>
        /// <param name="uniformName">
        /// <para>
        /// Specifies the address of a buffer into which the GL will place the name of the active uniform at uniformIndex within program.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)uniformName);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Query the name of an active uniform
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program containing the active uniform index uniformIndex.
        /// </para>
        /// </param>
        /// <param name="uniformIndex">
        /// <para>
        /// Specifies the index of the active uniform whose name to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer, in units of GLchar, of the buffer whose address is specified in uniformName.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by uniformName.
        /// </para>
        /// </param>
        /// <param name="uniformName">
        /// <para>
        /// Specifies the address of a buffer into which the GL will place the name of the active uniform at uniformIndex within program.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformName")]
        public static 
        unsafe void GetActiveUniformName(UInt32 program, UInt32 uniformIndex, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder uniformName)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformName((UInt32)program, (UInt32)uniformIndex, (Int32)bufSize, (Int32*)length, (StringBuilder)uniformName);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(Int32 program, Int32 uniformCount, ref Int32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        unsafe void GetActiveUniforms(Int32 program, Int32 uniformCount, Int32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32[] uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        void GetActiveUniforms(UInt32 program, Int32 uniformCount, ref UInt32 uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Returns information about several active uniform variables for the specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be queried.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies both the number of elements in the array of indices uniformIndices and the number of parameters written to params upon successful return.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array of uniformCount integers containing the indices of uniforms within program whose parameter pname pname.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the property of the each uniform in uniformIndices that should be written into the corresponding element of params.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array of uniformCount integers which are to receive the value of pname for each uniform in uniformIndices.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetActiveUniformsiv")]
        public static 
        unsafe void GetActiveUniforms(UInt32 program, Int32 uniformCount, UInt32* uniformIndices, OpenTK.Graphics.OpenGL.ActiveUniformParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetActiveUniformsiv((UInt32)program, (Int32)uniformCount, (UInt32*)uniformIndices, (OpenTK.Graphics.OpenGL.ActiveUniformParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies an array that is used to return the names of attached shader objects.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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>[requires: v2.0]
        /// 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 shaders.
        /// </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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(Int32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] Int32* obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 shaders.
        /// </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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 shaders.
        /// </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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] out Int32 count, [OutAttribute] 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>[requires: v2.0]
        /// 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 shaders.
        /// </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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetAttachedShaders")]
        public static 
        unsafe void GetAttachedShaders(UInt32 program, Int32 maxCount, [OutAttribute] Int32* count, [OutAttribute] UInt32* obj)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetAttachedShaders((UInt32)program, (Int32)maxCount, (Int32*)count, (UInt32*)obj);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] bool[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = data)
                {
                    Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out bool data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = &data)
                {
                    Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] bool* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] bool[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = data)
                {
                    Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out bool data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* data_ptr = &data)
                {
                    Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetBooleani_v")]
        public static 
        unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] bool* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleani_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (bool*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] bool[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* @params_ptr = @params)
                {
                    Delegates.glGetBooleanv((OpenTK.Graphics.OpenGL.GetPName)pname, (bool*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out bool @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (bool* @params_ptr = &@params)
                {
                    Delegates.glGetBooleanv((OpenTK.Graphics.OpenGL.GetPName)pname, (bool*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetBooleanv")]
        public static 
        unsafe void GetBoolean(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] bool* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBooleanv((OpenTK.Graphics.OpenGL.GetPName)pname, (bool*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetBufferParameteri64v((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetBufferParameteri64v((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetBufferParameteri64v")]
        public static 
        unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferParameteri64v((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetBufferParameteriv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetBufferParameteriv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferParameteriv")]
        public static 
        unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferParameterName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferParameteriv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [OutAttribute] IntPtr @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferPointerv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferPointer)pname, (IntPtr)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] T2[,,] @params)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferPointerv((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferPointerv")]
        public static 
        void GetBufferPointer<T2>(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferPointer pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferPointer)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                @params = (T2)@params_ptr.Target;
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] T3[,,] data)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
            try
            {
                Delegates.glGetBufferSubData((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_RESULT_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetBufferSubData")]
        public static 
        void GetBufferSubData<T3>(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)size, (IntPtr)data_ptr.AddrOfPinnedObject());
                data = (T3)data_ptr.Target;
            }
            finally
            {
                data_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] Double[] equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = equation)
                {
                    Delegates.glGetClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] out Double equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* equation_ptr = &equation)
                {
                    Delegates.glGetClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation_ptr);
                    equation = *equation_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetClipPlane")]
        public static 
        unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.ClipPlaneName plane, [OutAttribute] Double* equation)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetClipPlane((OpenTK.Graphics.OpenGL.ClipPlaneName)plane, (Double*)equation);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr table)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
            try
            {
                Delegates.glGetColorTable((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTable")]
        public static 
        void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                table = (T3)table_ptr.Target;
            }
            finally
            {
                table_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameterfv")]
        public static 
        unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTableParameterfv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetColorTableParameteriv")]
        public static 
        unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetColorTableParameteriv((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Return a compressed 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="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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [OutAttribute] IntPtr img)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetCompressedTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Return a compressed 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="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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Return a compressed 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="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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Return a compressed 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="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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] T2[,,] img)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
            try
            {
                Delegates.glGetCompressedTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3]
        /// Return a compressed 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="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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glGetCompressedTexImage")]
        public static 
        void GetCompressedTexImage<T2>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (IntPtr)img_ptr.AddrOfPinnedObject());
                img = (T2)img_ptr.Target;
            }
            finally
            {
                img_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr image)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionFilter((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
            try
            {
                Delegates.glGetConvolutionFilter((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionFilter")]
        public static 
        void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                image = (T3)image_ptr.Target;
            }
            finally
            {
                image_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetConvolutionParameterfv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetConvolutionParameterfv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameterfv")]
        public static 
        unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionParameterfv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetConvolutionParameteriv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetConvolutionParameteriv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetConvolutionParameteriv")]
        public static 
        unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ConvolutionTarget target, OpenTK.Graphics.OpenGL.GetConvolutionParameterPName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetConvolutionParameteriv((OpenTK.Graphics.OpenGL.ConvolutionTarget)target, (OpenTK.Graphics.OpenGL.GetConvolutionParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute] Int32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* sources_ptr = sources)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* types_ptr = types)
                fixed (Int32* ids_ptr = ids)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* severities_ptr = severities)
                fixed (Int32* lengths_ptr = lengths)
                {
                    return Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute] out Int32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* sources_ptr = &sources)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* types_ptr = &types)
                fixed (Int32* ids_ptr = &ids)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* severities_ptr = &severities)
                fixed (Int32* lengths_ptr = &lengths)
                {
                    Int32 retval = Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                    sources = *sources_ptr;
                    types = *types_ptr;
                    ids = *ids_ptr;
                    severities = *severities_ptr;
                    lengths = *lengths_ptr;
                    return retval;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        unsafe Int32 GetDebugMessageLog(Int32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute] Int32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources, (OpenTK.Graphics.OpenGL.KhrDebug*)types, (UInt32*)ids, (OpenTK.Graphics.OpenGL.KhrDebug*)severities, (Int32*)lengths, (StringBuilder)messageLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] types, [OutAttribute] UInt32[] ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug[] severities, [OutAttribute] Int32[] lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* sources_ptr = sources)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* types_ptr = types)
                fixed (UInt32* ids_ptr = ids)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* severities_ptr = severities)
                fixed (Int32* lengths_ptr = lengths)
                {
                    return Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug sources, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug types, [OutAttribute] out UInt32 ids, [OutAttribute] out OpenTK.Graphics.OpenGL.KhrDebug severities, [OutAttribute] out Int32 lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* sources_ptr = &sources)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* types_ptr = &types)
                fixed (UInt32* ids_ptr = &ids)
                fixed (OpenTK.Graphics.OpenGL.KhrDebug* severities_ptr = &severities)
                fixed (Int32* lengths_ptr = &lengths)
                {
                    Int32 retval = Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)types_ptr, (UInt32*)ids_ptr, (OpenTK.Graphics.OpenGL.KhrDebug*)severities_ptr, (Int32*)lengths_ptr, (StringBuilder)messageLog);
                    sources = *sources_ptr;
                    types = *types_ptr;
                    ids = *ids_ptr;
                    severities = *severities_ptr;
                    lengths = *lengths_ptr;
                    return retval;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve messages from the debug message log
        /// </summary>
        /// <param name="count">
        /// <para>
        /// The number of debug messages to retrieve from the log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the buffer whose address is given by messageLog.
        /// </para>
        /// </param>
        /// <param name="sources">
        /// <para>
        /// The address of an array of variables to receive the sources of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="types">
        /// <para>
        /// The address of an array of variables to receive the types of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// The address of an array of unsigned integers to receive the ids of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="severities">
        /// <para>
        /// The address of an array of variables to receive the severites of the retrieved messages.
        /// </para>
        /// </param>
        /// <param name="lengths">
        /// <para>
        /// The address of an array of variables to receive the lengths of the received messages.
        /// </para>
        /// </param>
        /// <param name="messageLog">
        /// <para>
        /// The address of an array of characters that will receive the messages.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetDebugMessageLog")]
        public static 
        unsafe Int32 GetDebugMessageLog(UInt32 count, Int32 bufsize, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* sources, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* types, [OutAttribute] UInt32* ids, [OutAttribute] OpenTK.Graphics.OpenGL.KhrDebug* severities, [OutAttribute] Int32* lengths, [OutAttribute] StringBuilder messageLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetDebugMessageLog((UInt32)count, (Int32)bufsize, (OpenTK.Graphics.OpenGL.KhrDebug*)sources, (OpenTK.Graphics.OpenGL.KhrDebug*)types, (UInt32*)ids, (OpenTK.Graphics.OpenGL.KhrDebug*)severities, (Int32*)lengths, (StringBuilder)messageLog);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Double[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* data_ptr = data)
                {
                    Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Double data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* data_ptr = &data)
                {
                    Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Double* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Double[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* data_ptr = data)
                {
                    Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Double data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* data_ptr = &data)
                {
                    Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetDoublei_v")]
        public static 
        unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Double* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetDoublei_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Double*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetDoublev((OpenTK.Graphics.OpenGL.GetPName)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetDoublev((OpenTK.Graphics.OpenGL.GetPName)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetDoublev")]
        public static 
        unsafe void GetDouble(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetDoublev((OpenTK.Graphics.OpenGL.GetPName)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return error information
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetError")]
        public static 
        OpenTK.Graphics.OpenGL.ErrorCode GetError()
        {
            return Delegates.glGetError();
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Single[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* data_ptr = data)
                {
                    Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Single data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* data_ptr = &data)
                {
                    Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Single* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Single[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* data_ptr = data)
                {
                    Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Single data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* data_ptr = &data)
                {
                    Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_viewport_array]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glGetFloati_v")]
        public static 
        unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Single* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFloati_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Single*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetFloatv((OpenTK.Graphics.OpenGL.GetPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetFloatv((OpenTK.Graphics.OpenGL.GetPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetFloatv")]
        public static 
        unsafe void GetFloat(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFloatv((OpenTK.Graphics.OpenGL.GetPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_blend_func_extended]
        /// Query the bindings of color indices to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose index to query
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_blend_func_extended", Version = "1.2", EntryPoint = "glGetFragDataIndex")]
        public static 
        Int32 GetFragDataIndex(Int32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetFragDataIndex((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_blend_func_extended]
        /// Query the bindings of color indices to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose index to query
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_blend_func_extended", Version = "1.2", EntryPoint = "glGetFragDataIndex")]
        public static 
        Int32 GetFragDataIndex(UInt32 program, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetFragDataIndex((UInt32)program, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Query the bindings of color numbers to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to query
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        
        /// <summary>[requires: v3.0]
        /// Query the bindings of color numbers to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to query
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetFramebufferAttachmentParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetFramebufferAttachmentParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetFramebufferAttachmentParameteriv")]
        public static 
        unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFramebufferAttachmentParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_framebuffer_no_attachments]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
        public static 
        void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetFramebufferParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferDefaultParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_framebuffer_no_attachments]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
        public static 
        void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetFramebufferParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferDefaultParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_framebuffer_no_attachments]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetFramebufferParameteriv")]
        public static 
        unsafe void GetFramebufferParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferDefaultParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetFramebufferParameteriv((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferDefaultParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogram")]
        public static 
        void GetHistogram<T4>(OpenTK.Graphics.OpenGL.HistogramTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.HistogramTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                values = (T4)values_ptr.Target;
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetHistogramParameterfv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetHistogramParameterfv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameterfv")]
        public static 
        unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogramParameterfv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetHistogramParameteriv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetHistogramParameteriv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetHistogramParameteriv")]
        public static 
        unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.HistogramTarget target, OpenTK.Graphics.OpenGL.GetHistogramParameterPName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetHistogramParameteriv((OpenTK.Graphics.OpenGL.HistogramTarget)target, (OpenTK.Graphics.OpenGL.GetHistogramParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int64[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = data)
                {
                    Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int64 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = &data)
                {
                    Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int64* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int64[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = data)
                {
                    Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int64 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* data_ptr = &data)
                {
                    Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.2]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_2", Version = "3.2", EntryPoint = "glGetInteger64i_v")]
        public static 
        unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int64* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64i_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int64*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sync]</summary>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetInteger64v((OpenTK.Graphics.OpenGL.ArbSync)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sync]</summary>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetInteger64v((OpenTK.Graphics.OpenGL.ArbSync)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sync]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetInteger64v")]
        public static 
        unsafe void GetInteger64(OpenTK.Graphics.OpenGL.ArbSync pname, [OutAttribute] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInteger64v((OpenTK.Graphics.OpenGL.ArbSync)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = data)
                {
                    Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = &data)
                {
                    Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = data)
                {
                    Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* data_ptr = &data)
                {
                    Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    data = *data_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetIntegeri_v")]
        public static 
        unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegeri_v((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetIntegerv((OpenTK.Graphics.OpenGL.GetPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetIntegerv((OpenTK.Graphics.OpenGL.GetPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetIntegerv")]
        public static 
        unsafe void GetInteger(OpenTK.Graphics.OpenGL.GetPName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetIntegerv((OpenTK.Graphics.OpenGL.GetPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_internalformat_query2]</summary>
        [AutoGenerated(Category = "ARB_internalformat_query2", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
        public static 
        void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetInternalformati64v((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_internalformat_query2]</summary>
        [AutoGenerated(Category = "ARB_internalformat_query2", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
        public static 
        void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetInternalformati64v((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_internalformat_query2]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_internalformat_query2", Version = "4.3", EntryPoint = "glGetInternalformati64v")]
        public static 
        unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInternalformati64v((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_internalformat_query]
        /// Retrieve information about implementation-dependent support for internal formats
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Indicates the usage of the internal format. target must be GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_RENDERBUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format about which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the type of information to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of basic machine units that may be written to params by the function.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_internalformat_query", Version = "4.2", EntryPoint = "glGetInternalformativ")]
        public static 
        void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetInternalformativ((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_internalformat_query]
        /// Retrieve information about implementation-dependent support for internal formats
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Indicates the usage of the internal format. target must be GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_RENDERBUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format about which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the type of information to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of basic machine units that may be written to params by the function.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_internalformat_query", Version = "4.2", EntryPoint = "glGetInternalformativ")]
        public static 
        void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetInternalformativ((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_internalformat_query]
        /// Retrieve information about implementation-dependent support for internal formats
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Indicates the usage of the internal format. target must be GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_RENDERBUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format about which to retrieve information.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the type of information to query.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of basic machine units that may be written to params by the function.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which to write the retrieved information.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_internalformat_query", Version = "4.2", EntryPoint = "glGetInternalformativ")]
        public static 
        unsafe void GetInternalformat(OpenTK.Graphics.OpenGL.ImageTarget target, OpenTK.Graphics.OpenGL.All internalformat, OpenTK.Graphics.OpenGL.InternalFormatParameter pname, Int32 bufSize, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetInternalformativ((OpenTK.Graphics.OpenGL.ImageTarget)target, (OpenTK.Graphics.OpenGL.All)internalformat, (OpenTK.Graphics.OpenGL.InternalFormatParameter)pname, (Int32)bufSize, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetLightfv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetLightfv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightfv")]
        public static 
        unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetLightfv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetLightiv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetLightiv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetLightiv")]
        public static 
        unsafe void GetLight(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetLightiv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glGetMapdv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glGetMapdv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Double*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapdv")]
        public static 
        unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapdv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glGetMapfv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glGetMapfv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Single*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapfv")]
        public static 
        unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapfv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glGetMapiv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] out Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glGetMapiv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Int32*)v_ptr);
                    v = *v_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMapiv")]
        public static 
        unsafe void GetMap(OpenTK.Graphics.OpenGL.MapTarget target, OpenTK.Graphics.OpenGL.GetMapQuery query, [OutAttribute] Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMapiv((OpenTK.Graphics.OpenGL.MapTarget)target, (OpenTK.Graphics.OpenGL.GetMapQuery)query, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetMaterialfv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetMaterialfv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialfv")]
        public static 
        unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMaterialfv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetMaterialiv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetMaterialiv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetMaterialiv")]
        public static 
        unsafe void GetMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMaterialiv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
            try
            {
                Delegates.glGetMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmax")]
        public static 
        void GetMinmax<T4>(OpenTK.Graphics.OpenGL.MinmaxTarget target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                values = (T4)values_ptr.Target;
            }
            finally
            {
                values_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetMinmaxParameterfv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetMinmaxParameterfv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameterfv")]
        public static 
        unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmaxParameterfv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetMinmaxParameteriv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetMinmaxParameteriv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetMinmaxParameteriv")]
        public static 
        unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.GetMinmaxParameterPName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMinmaxParameteriv((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.GetMinmaxParameterPName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] Single[] val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = val)
                {
                    Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] out Single val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = &val)
                {
                    Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val_ptr);
                    val = *val_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, Int32 index, [OutAttribute] Single* val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single[] val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = val)
                {
                    Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] out Single val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* val_ptr = &val)
                {
                    Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val_ptr);
                    val = *val_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glGetMultisamplefv")]
        public static 
        unsafe void GetMultisample(OpenTK.Graphics.OpenGL.GetMultisamplePName pname, UInt32 index, [OutAttribute] Single* val)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetMultisamplefv((OpenTK.Graphics.OpenGL.GetMultisamplePName)pname, (UInt32)index, (Single*)val);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectLabel")]
        public static 
        unsafe void GetObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    Delegates.glGetObjectPtrLabel((IntPtr)ptr, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetObjectPtrLabel((IntPtr)ptr, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        unsafe void GetObjectPtrLabel(IntPtr ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetObjectPtrLabel((IntPtr)ptr, (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                        length = *length_ptr;
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                        length = *length_ptr;
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                        length = *length_ptr;
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length, (StringBuilder)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                        ptr = (T0)ptr_ptr.Target;
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)label);
                        ptr = (T0)ptr_ptr.Target;
                        length = *length_ptr;
                    }
                    finally
                    {
                        ptr_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Retrieve the label of a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// The name of the sync object whose label to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The length of the buffer whose address is in label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable to receive the length of the object label.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string that will receive the object label.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glGetObjectPtrLabel")]
        public static 
        unsafe void GetObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glGetObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)bufSize, (Int32*)length, (StringBuilder)label);
                ptr = (T0)ptr_ptr.Target;
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Single[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = values)
                {
                    Delegates.glGetPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Single values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = &values)
                {
                    Delegates.glGetPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Single*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapfv")]
        public static 
        unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Single* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Single*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = values)
                {
                    Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out UInt32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = &values)
                {
                    Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapuiv")]
        public static 
        unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = values)
                {
                    Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out Int16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = &values)
                {
                    Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] Int16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = values)
                {
                    Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] out UInt16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = &values)
                {
                    Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPixelMapusv")]
        public static 
        unsafe void GetPixelMap(OpenTK.Graphics.OpenGL.PixelMap map, [OutAttribute] UInt16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetPixelMapxv")]
        public static 
        void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] int[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (int* values_ptr = values)
                {
                    Delegates.glGetPixelMapxv((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetPixelMapxv")]
        public static 
        void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] out int values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (int* values_ptr = &values)
                {
                    Delegates.glGetPixelMapxv((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetPixelMapxv")]
        public static 
        unsafe void GetPixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, [OutAttribute] int* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPixelMapxv((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute] IntPtr @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPointerv((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
            try
            {
                Delegates.glGetPointerv((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glGetPointerv")]
        public static 
        void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                @params = (T1)@params_ptr.Target;
            }
            finally
            {
                @params_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        void GetPolygonStipple([OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        void GetPolygonStipple([OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetPolygonStipple")]
        public static 
        unsafe void GetPolygonStipple([OutAttribute] Byte* mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetPolygonStipple((Byte*)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary);
                    length = *length_ptr;
                    binaryFormat = *binaryFormat_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                        binary = (T4)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
                binary = (T4)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [OutAttribute] IntPtr binary)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary);
                    length = *length_ptr;
                    binaryFormat = *binaryFormat_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat_ptr = &binaryFormat)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat_ptr, (IntPtr)binary_ptr.AddrOfPinnedObject());
                        length = *length_ptr;
                        binaryFormat = *binaryFormat_ptr;
                        binary = (T4)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [OutAttribute] IntPtr binary)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] T4[,,] binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Return a binary representation of a program object's compiled and linked executable source
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose binary representation to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given by binary.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable to receive the number of bytes written into binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array into which the GL will return program's binary representation.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glGetProgramBinary")]
        public static 
        unsafe void GetProgramBinary<T4>(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] OpenTK.Graphics.OpenGL.BinaryFormat* binaryFormat, [InAttribute, OutAttribute] ref T4 binary)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glGetProgramBinary((UInt32)program, (Int32)bufSize, (Int32*)length, (OpenTK.Graphics.OpenGL.BinaryFormat*)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject());
                binary = (T4)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        unsafe void GetProgramInfoLog(Int32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramInfoLog")]
        public static 
        unsafe void GetProgramInfoLog(UInt32 program, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInfoLog((UInt32)program, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        unsafe void GetProgramInterface(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query a property of an interface in a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose interface to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// The name of the parameter within programInterface to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to retrieve the value of pname for the program interface.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramInterfaceiv")]
        public static 
        unsafe void GetProgramInterface(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, OpenTK.Graphics.OpenGL.ProgramInterfaceParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramInterfaceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (OpenTK.Graphics.OpenGL.ProgramInterfaceParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        unsafe void GetProgram(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetProgramiv")]
        public static 
        unsafe void GetProgram(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve the info log string from a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object from which to retrieve the info log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters, including the null terminator, that may be written into infoLog.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which will be written the number of characters written into infoLog.
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies the address of an array of characters into which will be written the info log for pipeline.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
        public static 
        void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramPipelineInfoLog((UInt32)pipeline, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve the info log string from a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object from which to retrieve the info log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters, including the null terminator, that may be written into infoLog.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which will be written the number of characters written into infoLog.
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies the address of an array of characters into which will be written the info log for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
        public static 
        unsafe void GetProgramPipelineInfoLog(Int32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramPipelineInfoLog((UInt32)pipeline, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve the info log string from a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object from which to retrieve the info log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters, including the null terminator, that may be written into infoLog.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which will be written the number of characters written into infoLog.
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies the address of an array of characters into which will be written the info log for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
        public static 
        void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramPipelineInfoLog((UInt32)pipeline, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve the info log string from a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object from which to retrieve the info log.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the maximum number of characters, including the null terminator, that may be written into infoLog.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of a variable into which will be written the number of characters written into infoLog.
        /// </para>
        /// </param>
        /// <param name="infoLog">
        /// <para>
        /// Specifies the address of an array of characters into which will be written the info log for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineInfoLog")]
        public static 
        unsafe void GetProgramPipelineInfoLog(UInt32 pipeline, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramPipelineInfoLog((UInt32)pipeline, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        unsafe void GetProgramPipeline(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Retrieve properties of a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object whose parameter retrieve.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to retrieve.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable into which will be written the value or values of pname for pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glGetProgramPipelineiv")]
        public static 
        unsafe void GetProgramPipeline(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramPipelineParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramPipelineiv((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramPipelineParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the index of a named resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the index of.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
        public static 
        Int32 GetProgramResourceIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the index of a named resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the index of.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceIndex")]
        public static 
        Int32 GetProgramResourceIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.ProgramProperty* props_ptr = props)
                fixed (Int32* length_ptr = length)
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props_ptr, (Int32)bufSize, (Int32*)length_ptr, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.ProgramProperty* props_ptr = &props)
                fixed (Int32* length_ptr = &length)
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props_ptr, (Int32)bufSize, (Int32*)length_ptr, (Int32*)@params_ptr);
                    length = *length_ptr;
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        unsafe void GetProgramResource(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props, (Int32)bufSize, (Int32*)length, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty[] props, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.ProgramProperty* props_ptr = props)
                fixed (Int32* length_ptr = length)
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props_ptr, (Int32)bufSize, (Int32*)length_ptr, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, ref OpenTK.Graphics.OpenGL.ProgramProperty props, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.ProgramProperty* props_ptr = &props)
                fixed (Int32* length_ptr = &length)
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props_ptr, (Int32)bufSize, (Int32*)length_ptr, (Int32*)@params_ptr);
                    length = *length_ptr;
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Retrieve values for multiple properties of a single active resource within a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceiv")]
        public static 
        unsafe void GetProgramResource(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 propCount, OpenTK.Graphics.OpenGL.ProgramProperty* props, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramResourceiv((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)propCount, (OpenTK.Graphics.OpenGL.ProgramProperty*)props, (Int32)bufSize, (Int32*)length, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the location of a named resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the location of.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
        public static 
        Int32 GetProgramResourceLocation(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceLocation((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the location of a named resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the location of.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceLocation")]
        public static 
        Int32 GetProgramResourceLocation(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceLocation((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the fragment color index of a named variable within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the location of.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
        public static 
        Int32 GetProgramResourceLocationIndex(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceLocationIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the fragment color index of a named variable within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the resource named name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the resource to query the location of.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceLocationIndex")]
        public static 
        Int32 GetProgramResourceLocationIndex(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetProgramResourceLocationIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)name);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        unsafe void GetProgramResourceName(Int32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = length)
                {
                    Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)name);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                {
                    Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (StringBuilder)name);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_program_interface_query]
        /// Query the name of an indexed resource within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object whose resources to query.
        /// </para>
        /// </param>
        /// <param name="programInterface">
        /// <para>
        /// A token identifying the interface within program containing the indexed resource.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the resource within programInterface of program.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The size of the character array whose address is given by name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the length of the resource name.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a character array into which will be written the name of the resource.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_program_interface_query", Version = "4.3", EntryPoint = "glGetProgramResourceName")]
        public static 
        unsafe void GetProgramResourceName(UInt32 program, OpenTK.Graphics.OpenGL.ProgramInterface programInterface, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramResourceName((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramInterface)programInterface, (UInt32)index, (Int32)bufSize, (Int32*)length, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve properties of a program object corresponding to a specified shader stage
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader to query. pname must be GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetProgramStageiv")]
        public static 
        void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetProgramStageiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ProgramStageParameter)pname, (Int32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve properties of a program object corresponding to a specified shader stage
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader to query. pname must be GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetProgramStageiv")]
        public static 
        unsafe void GetProgramStage(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramStageiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ProgramStageParameter)pname, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve properties of a program object corresponding to a specified shader stage
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader to query. pname must be GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetProgramStageiv")]
        public static 
        void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] out Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glGetProgramStageiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ProgramStageParameter)pname, (Int32*)values_ptr);
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve properties of a program object corresponding to a specified shader stage
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for the subroutine parameter. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of the shader to query. pname must be GL_ACTIVE_SUBROUTINE_UNIFORMS, GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS, GL_ACTIVE_SUBROUTINES, GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH, or GL_ACTIVE_SUBROUTINE_MAX_LENGTH.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable into which the queried value or values will be placed.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetProgramStageiv")]
        public static 
        unsafe void GetProgramStage(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ProgramStageParameter pname, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetProgramStageiv((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ProgramStageParameter)pname, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, Int32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback3]
        /// Return parameters of an indexed query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the query object target.
        /// </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 = "ARB_transform_feedback3", Version = "1.2", EntryPoint = "glGetQueryIndexediv")]
        public static 
        unsafe void GetQueryIndexed(OpenTK.Graphics.OpenGL.QueryTarget target, UInt32 index, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryIndexediv((OpenTK.Graphics.OpenGL.QueryTarget)target, (UInt32)index, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryiv((OpenTK.Graphics.OpenGL.QueryTarget)target, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryiv((OpenTK.Graphics.OpenGL.QueryTarget)target, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// Return parameters of a query object target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a query object target. Must be GL_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED, GL_ANY_SAMPLES_PASSED_CONSERVATIVE GL_PRIMITIVES_GENERATED, GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN, GL_TIME_ELAPSED, or GL_TIMESTAMP.
        /// </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 = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryiv")]
        public static 
        unsafe void GetQuery(OpenTK.Graphics.OpenGL.QueryTarget target, OpenTK.Graphics.OpenGL.GetQueryParam pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryiv((OpenTK.Graphics.OpenGL.QueryTarget)target, (OpenTK.Graphics.OpenGL.GetQueryParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int64* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjecti64v")]
        public static 
        unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjecti64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int64*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectiv")]
        public static 
        unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjectui64v")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt64[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt64* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectui64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt64*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjectui64v")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out UInt64 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt64* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectui64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt64*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glGetQueryObjectui64v")]
        public static 
        unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt64* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectui64v((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt64*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetQueryObjectuiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetQueryObjectuiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glGetQueryObjectuiv")]
        public static 
        unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.GetQueryObjectParam pname, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetQueryObjectuiv((UInt32)id, (OpenTK.Graphics.OpenGL.GetQueryObjectParam)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetRenderbufferParameteriv((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetRenderbufferParameteriv((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glGetRenderbufferParameteriv")]
        public static 
        unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetRenderbufferParameteriv((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterfv")]
        public static 
        unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        unsafe void GetSamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIiv")]
        public static 
        unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIuiv")]
        public static 
        void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIuiv")]
        public static 
        void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameterIuiv")]
        public static 
        unsafe void GetSamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        unsafe void GetSamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Return sampler parameter values
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies name of the sampler object from which to retrieve parameters.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a sampler parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, and GL_TEXTURE_COMPARE_FUNC are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the sampler parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glGetSamplerParameteriv")]
        public static 
        unsafe void GetSamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSeparableFilter((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] row, [InAttribute, OutAttribute] T4[] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] row, [InAttribute, OutAttribute] T4[,] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] row, [InAttribute, OutAttribute] T4[,,] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glGetSeparableFilter")]
        public static 
        void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 row, [InAttribute, OutAttribute] ref T4 column, [InAttribute, OutAttribute] ref 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                row = (T3)row_ptr.Target;
                column = (T4)column_ptr.Target;
                span = (T5)span_ptr.Target;
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
                span_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        unsafe void GetShaderInfoLog(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)infoLog);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderInfoLog")]
        public static 
        unsafe void GetShaderInfoLog(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder infoLog)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderInfoLog((UInt32)shader, (Int32)bufSize, (Int32*)length, (StringBuilder)infoLog);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        unsafe void GetShader(Int32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderiv")]
        public static 
        unsafe void GetShader(UInt32 shader, OpenTK.Graphics.OpenGL.ShaderParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderiv((UInt32)shader, (OpenTK.Graphics.OpenGL.ShaderParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Retrieve the range and precision for numeric formats supported by the shader compiler
        /// </summary>
        /// <param name="shaderType">
        /// <para>
        /// Specifies the type of shader whose precision to query. shaderType must be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="precisionType">
        /// <para>
        /// Specifies the numeric format whose precision and range to query.
        /// </para>
        /// </param>
        /// <param name="range">
        /// <para>
        /// Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.
        /// </para>
        /// </param>
        /// <param name="precision">
        /// <para>
        /// Specifies the address of an integer into which the numeric precision of the implementation is written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
        public static 
        void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecisionType precisiontype, [OutAttribute] Int32[] range, [OutAttribute] Int32[] precision)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* range_ptr = range)
                fixed (Int32* precision_ptr = precision)
                {
                    Delegates.glGetShaderPrecisionFormat((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ShaderPrecisionType)precisiontype, (Int32*)range_ptr, (Int32*)precision_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Retrieve the range and precision for numeric formats supported by the shader compiler
        /// </summary>
        /// <param name="shaderType">
        /// <para>
        /// Specifies the type of shader whose precision to query. shaderType must be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="precisionType">
        /// <para>
        /// Specifies the numeric format whose precision and range to query.
        /// </para>
        /// </param>
        /// <param name="range">
        /// <para>
        /// Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.
        /// </para>
        /// </param>
        /// <param name="precision">
        /// <para>
        /// Specifies the address of an integer into which the numeric precision of the implementation is written.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
        public static 
        void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecisionType precisiontype, [OutAttribute] out Int32 range, [OutAttribute] out Int32 precision)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* range_ptr = &range)
                fixed (Int32* precision_ptr = &precision)
                {
                    Delegates.glGetShaderPrecisionFormat((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ShaderPrecisionType)precisiontype, (Int32*)range_ptr, (Int32*)precision_ptr);
                    range = *range_ptr;
                    precision = *precision_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Retrieve the range and precision for numeric formats supported by the shader compiler
        /// </summary>
        /// <param name="shaderType">
        /// <para>
        /// Specifies the type of shader whose precision to query. shaderType must be GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="precisionType">
        /// <para>
        /// Specifies the numeric format whose precision and range to query.
        /// </para>
        /// </param>
        /// <param name="range">
        /// <para>
        /// Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.
        /// </para>
        /// </param>
        /// <param name="precision">
        /// <para>
        /// Specifies the address of an integer into which the numeric precision of the implementation is written.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glGetShaderPrecisionFormat")]
        public static 
        unsafe void GetShaderPrecisionFormat(OpenTK.Graphics.OpenGL.ShaderType shadertype, OpenTK.Graphics.OpenGL.ShaderPrecisionType precisiontype, [OutAttribute] Int32* range, [OutAttribute] Int32* precision)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderPrecisionFormat((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (OpenTK.Graphics.OpenGL.ShaderPrecisionType)precisiontype, (Int32*)range, (Int32*)precision);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)source);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        unsafe void GetShaderSource(Int32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length, (StringBuilder)source);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (StringBuilder)source);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetShaderSource")]
        public static 
        unsafe void GetShaderSource(UInt32 shader, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] StringBuilder source)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetShaderSource((UInt32)shader, (Int32)bufSize, (Int32*)length, (StringBuilder)source);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, or GL_SHADING_LANGUAGE_VERSION. Additionally, glGetStringi accepts the GL_EXTENSIONS token.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// For glGetStringi, specifies the index of the string to return.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetString")]
        public static 
        String GetString(OpenTK.Graphics.OpenGL.StringName name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe { return new string((sbyte*)Delegates.glGetString((OpenTK.Graphics.OpenGL.StringName)name)); }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// 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, or GL_SHADING_LANGUAGE_VERSION. Additionally, glGetStringi accepts the GL_EXTENSIONS token.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// For glGetStringi, specifies the index of the string to return.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetStringi")]
        public static 
        String GetString(OpenTK.Graphics.OpenGL.StringNameIndexed name, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe { return new string((sbyte*)Delegates.glGetStringi((OpenTK.Graphics.OpenGL.StringNameIndexed)name, (UInt32)index)); }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// 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, or GL_SHADING_LANGUAGE_VERSION. Additionally, glGetStringi accepts the GL_EXTENSIONS token.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// For glGetStringi, specifies the index of the string to return.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetStringi")]
        public static 
        String GetString(OpenTK.Graphics.OpenGL.StringNameIndexed name, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe { return new string((sbyte*)Delegates.glGetStringi((OpenTK.Graphics.OpenGL.StringNameIndexed)name, (UInt32)index)); }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the index of a subroutine uniform of a given shader stage within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the name of the subroutine uniform whose index to query.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetSubroutineIndex")]
        public static 
        Int32 GetSubroutineIndex(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetSubroutineIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the index of a subroutine uniform of a given shader stage within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the name of the subroutine uniform whose index to query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetSubroutineIndex")]
        public static 
        Int32 GetSubroutineIndex(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetSubroutineIndex((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the location of a subroutine uniform of a given shader stage within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the name of the subroutine uniform whose index to query.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetSubroutineUniformLocation")]
        public static 
        Int32 GetSubroutineUniformLocation(Int32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetSubroutineUniformLocation((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the location of a subroutine uniform of a given shader stage within a program
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of the program containing shader stage.
        /// </para>
        /// </param>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// Specifies the name of the subroutine uniform whose index to query.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetSubroutineUniformLocation")]
        public static 
        Int32 GetSubroutineUniformLocation(UInt32 program, OpenTK.Graphics.OpenGL.ShaderType shadertype, String name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glGetSubroutineUniformLocation((UInt32)program, (OpenTK.Graphics.OpenGL.ShaderType)shadertype, (String)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Query the properties of a sync object
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies the sync object whose properties to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the sync object specified in sync.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in values.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of an variable to receive the number of integers placed in values.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array to receive the values of the queried parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameter pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.SyncParameter)pname, (Int32)bufSize, (Int32*)length_ptr, (Int32*)values_ptr);
                    length = *length_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Query the properties of a sync object
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies the sync object whose properties to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the sync object specified in sync.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in values.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of an variable to receive the number of integers placed in values.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array to receive the values of the queried parameter.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameter pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] 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, (OpenTK.Graphics.OpenGL.SyncParameter)pname, (Int32)bufSize, (Int32*)length_ptr, (Int32*)values_ptr);
                    length = *length_ptr;
                    values = *values_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Query the properties of a sync object
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies the sync object whose properties to query.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the sync object specified in sync.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// Specifies the size of the buffer whose address is given in values.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the address of an variable to receive the number of integers placed in values.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array to receive the values of the queried parameter.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glGetSynciv")]
        public static 
        unsafe void GetSync(IntPtr sync, OpenTK.Graphics.OpenGL.SyncParameter pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetSynciv((IntPtr)sync, (OpenTK.Graphics.OpenGL.SyncParameter)pname, (Int32)bufSize, (Int32*)length, (Int32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexEnvfv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexEnvfv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnvfv")]
        public static 
        unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexEnvfv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexEnviv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexEnviv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexEnviv")]
        public static 
        unsafe void GetTexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexEnviv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGendv")]
        public static 
        unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexGenfv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexGenfv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGenfv")]
        public static 
        unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGenfv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexGeniv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexGeniv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexGeniv")]
        public static 
        unsafe void GetTexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexGeniv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER, GL_BGR_INTEGER, GL_BGRA_INTEGER.
        /// </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_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, and GL_FLOAT_32_UNSIGNED_INT_24_8_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER, GL_BGR_INTEGER, GL_BGRA_INTEGER.
        /// </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_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, and GL_FLOAT_32_UNSIGNED_INT_24_8_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER, GL_BGR_INTEGER, GL_BGRA_INTEGER.
        /// </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_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, and GL_FLOAT_32_UNSIGNED_INT_24_8_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER, GL_BGR_INTEGER, GL_BGRA_INTEGER.
        /// </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_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, and GL_FLOAT_32_UNSIGNED_INT_24_8_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] pixels)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glGetTexImage((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RG, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED_INTEGER, GL_GREEN_INTEGER, GL_BLUE_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_RGBA_INTEGER, GL_BGR_INTEGER, GL_BGRA_INTEGER.
        /// </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_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, and GL_FLOAT_32_UNSIGNED_INT_24_8_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexImage")]
        public static 
        void GetTexImage<T4>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T4)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexLevelParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexLevelParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameterfv")]
        public static 
        unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexLevelParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexLevelParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexLevelParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Return texture parameter values for a specific level of detail
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the symbolic name of the target texture, one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY, 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, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE, GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY, GL_PROXY_TEXTURE_CUBE_MAP, or GL_TEXTURE_BUFFER.
        /// </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_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, and GL_TEXTURE_BUFFER_OFFSET are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexLevelParameteriv")]
        public static 
        unsafe void GetTexLevelParameter(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexLevelParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameterfv")]
        public static 
        unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIiv")]
        public static 
        unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTexParameterIuiv")]
        public static 
        unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetTexParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetTexParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, and GL_TEXTURE_CUBE_MAP_ARRAY are accepted.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a texture parameter. GL_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_IMMUTABLE_FORMAT, GL_TEXTURE_IMMUTABLE_LEVELS, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_SWIZZLE_RGBA, GL_TEXTURE_VIEW_MIN_LAYER, GL_TEXTURE_VIEW_MIN_LEVEL, GL_TEXTURE_VIEW_NUM_LAYERS, GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, and GL_TEXTURE_WRAP_R are accepted.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the texture parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glGetTexParameteriv")]
        public static 
        unsafe void GetTexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTexParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ActiveAttribType type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* length_ptr = &length)
                fixed (Int32* size_ptr = &size)
                fixed (OpenTK.Graphics.OpenGL.ActiveAttribType* type_ptr = &type)
                {
                    Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type_ptr, (StringBuilder)name);
                    length = *length_ptr;
                    size = *size_ptr;
                    type = *type_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetTransformFeedbackVarying")]
        public static 
        unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ActiveAttribType* type, [OutAttribute] StringBuilder name)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetTransformFeedbackVarying((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ActiveAttribType*)type, (StringBuilder)name);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", 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
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing the uniform block.
        /// </para>
        /// </param>
        /// <param name="uniformBlockName">
        /// <para>
        /// Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", 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>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glGetUniformdv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformdv((UInt32)program, (Int32)location, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformfv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformfv((UInt32)program, (Int32)location, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] 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
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] 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
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        unsafe void GetUniformIndices(Int32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] Int32* uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] 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>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] 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
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Retrieve the index of a named uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program containing uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformCount">
        /// <para>
        /// Specifies the number of uniforms whose indices to query.
        /// </para>
        /// </param>
        /// <param name="uniformNames">
        /// <para>
        /// Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.
        /// </para>
        /// </param>
        /// <param name="uniformIndices">
        /// <para>
        /// Specifies the address of an array that will receive the indices of the uniforms.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", Version = "2.0", EntryPoint = "glGetUniformIndices")]
        public static 
        unsafe void GetUniformIndices(UInt32 program, Int32 uniformCount, String[] uniformNames, [OutAttribute] UInt32* uniformIndices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformIndices((UInt32)program, (Int32)uniformCount, (String[])uniformNames, (UInt32*)uniformIndices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetUniformiv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformiv((UInt32)program, (Int32)location, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable to receive the value or values of the subroutine uniform.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetUniformSubroutineuiv")]
        public static 
        void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetUniformSubroutineuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)location, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable to receive the value or values of the subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetUniformSubroutineuiv")]
        public static 
        unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformSubroutineuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)location, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable to receive the value or values of the subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetUniformSubroutineuiv")]
        public static 
        void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetUniformSubroutineuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)location, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Retrieve the value of a subroutine uniform of a given shader stage of the current program
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="location">
        /// <para>
        /// Specifies the location of the subroutine uniform.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of a variable to receive the value or values of the subroutine uniform.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glGetUniformSubroutineuiv")]
        public static 
        unsafe void GetUniformSubroutine(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 location, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformSubroutineuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)location, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// 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 = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetUniformuiv")]
        public static 
        unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetUniformuiv((UInt32)program, (Int32)location, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribdv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Single @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribfv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribfv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIiv")]
        public static 
        unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
        public static 
        void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribIuiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (UInt32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glGetVertexAttribIuiv")]
        public static 
        unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribIuiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribiv")]
        public static 
        unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribiv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] out Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params_ptr);
                    @params = *@params_ptr;
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdv")]
        public static 
        unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribParameter pname, [OutAttribute] Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribLdv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribPointerv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [OutAttribute] IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glGetVertexAttribPointerv((UInt32)index, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glGetVertexAttribPointerv")]
        public static 
        void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.VertexAttribPointerParameter pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerParameter)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// Specify implementation-specific hints
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a symbolic constant indicating the behavior to be controlled. GL_LINE_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glHint")]
        public static 
        void Hint(OpenTK.Graphics.OpenGL.HintTarget target, OpenTK.Graphics.OpenGL.HintMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glHint((OpenTK.Graphics.OpenGL.HintTarget)target, (OpenTK.Graphics.OpenGL.HintMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glHistogram")]
        public static 
        void Histogram(OpenTK.Graphics.OpenGL.HistogramTarget target, Int32 width, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, bool sink)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target, (Int32)width, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (bool)sink);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glIndexPointer((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glIndexPointer((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glIndexPointer")]
        public static 
        void IndexPointer<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.0][deprecated: v3.1]
        /// Initialize the name stack
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glInitNames")]
        public static 
        void InitNames()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInitNames();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInterleavedArrays((OpenTK.Graphics.OpenGL.InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((OpenTK.Graphics.OpenGL.InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((OpenTK.Graphics.OpenGL.InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glInterleavedArrays((OpenTK.Graphics.OpenGL.InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glInterleavedArrays")]
        public static 
        void InterleavedArrays<T2>(OpenTK.Graphics.OpenGL.InterleavedArrayFormat format, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.InterleavedArrayFormat)format, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content of a buffer object's data store
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object whose data store to invalidate.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateBufferData")]
        public static 
        void InvalidateBufferData(Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateBufferData((UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content of a buffer object's data store
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object whose data store to invalidate.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateBufferData")]
        public static 
        void InvalidateBufferData(UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateBufferData((UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate a region of a buffer object's data store
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object, a subrange of whose data store to invalidate.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset within the buffer's data store of the start of the range to be invalidated.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the range within the buffer's data store to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateBufferSubData")]
        public static 
        void InvalidateBufferSubData(Int32 buffer, IntPtr offset, IntPtr length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateBufferSubData((UInt32)buffer, (IntPtr)offset, (IntPtr)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate a region of a buffer object's data store
        /// </summary>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object, a subrange of whose data store to invalidate.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The offset within the buffer's data store of the start of the range to be invalidated.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the range within the buffer's data store to be invalidated.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateBufferSubData")]
        public static 
        void InvalidateBufferSubData(UInt32 buffer, IntPtr offset, IntPtr length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateBufferSubData((UInt32)buffer, (IntPtr)offset, (IntPtr)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
        public static 
        void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments_ptr = attachments)
                {
                    Delegates.glInvalidateFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
        public static 
        void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments_ptr = &attachments)
                {
                    Delegates.glInvalidateFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateFramebuffer")]
        public static 
        unsafe void InvalidateFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content of a region of some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The X offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="y">
        /// <para>
        /// The Y offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the region to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
        public static 
        void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment[] attachments, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments_ptr = attachments)
                {
                    Delegates.glInvalidateSubFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments_ptr, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content of a region of some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The X offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="y">
        /// <para>
        /// The Y offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the region to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
        public static 
        void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, ref OpenTK.Graphics.OpenGL.FramebufferAttachment attachments, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments_ptr = &attachments)
                {
                    Delegates.glInvalidateSubFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments_ptr, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the content of a region of some or all of a framebuffer object's attachments
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target to which the framebuffer is attached. target must be GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="numAttachments">
        /// <para>
        /// The number of entries in the attachments array.
        /// </para>
        /// </param>
        /// <param name="attachments">
        /// <para>
        /// The address of an array identifying the attachments to be invalidated.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// The X offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="y">
        /// <para>
        /// The Y offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the region to be invalidated.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateSubFramebuffer")]
        public static 
        unsafe void InvalidateSubFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 numAttachments, OpenTK.Graphics.OpenGL.FramebufferAttachment* attachments, Int32 x, Int32 y, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateSubFramebuffer((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (Int32)numAttachments, (OpenTK.Graphics.OpenGL.FramebufferAttachment*)attachments, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the entirety a texture image
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// The name of a texture object to invalidate.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// The level of detail of the texture object to invalidate.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateTexImage")]
        public static 
        void InvalidateTexImage(Int32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateTexImage((UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate the entirety a texture image
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// The name of a texture object to invalidate.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// The level of detail of the texture object to invalidate.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateTexImage")]
        public static 
        void InvalidateTexImage(UInt32 texture, Int32 level)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateTexImage((UInt32)texture, (Int32)level);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate a region of a texture image
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// The name of a texture object a subregion of which to invalidate.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// The level of detail of the texture object within which the region resides.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// The X offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// The Y offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// The Z offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The depth of the region to be invalidated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateTexSubImage")]
        public static 
        void InvalidateTexSubImage(Int32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateTexSubImage((UInt32)texture, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_invalidate_subdata]
        /// Invalidate a region of a texture image
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// The name of a texture object a subregion of which to invalidate.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// The level of detail of the texture object within which the region resides.
        /// </para>
        /// </param>
        /// <param name="xoffset">
        /// <para>
        /// The X offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="yoffset">
        /// <para>
        /// The Y offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="zoffset">
        /// <para>
        /// The Z offset of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the region to be invalidated.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// The depth of the region to be invalidated.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_invalidate_subdata", Version = "4.3", EntryPoint = "glInvalidateTexSubImage")]
        public static 
        void InvalidateTexSubImage(UInt32 texture, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glInvalidateTexSubImage((UInt32)texture, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.0]
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glIsEnabled")]
        public static 
        bool IsEnabled(OpenTK.Graphics.OpenGL.EnableCap cap)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabled((OpenTK.Graphics.OpenGL.EnableCap)cap);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the capability.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glIsEnabledi")]
        public static 
        bool IsEnabled(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabledi((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Test whether a capability is enabled
        /// </summary>
        /// <param name="cap">
        /// <para>
        /// Specifies a symbolic constant indicating a GL capability.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the capability.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glIsEnabledi")]
        public static 
        bool IsEnabled(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsEnabledi((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Determine if a name corresponds to a framebuffer object
        /// </summary>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies a value that may be the name of a framebuffer object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Determine if a name corresponds to a framebuffer object
        /// </summary>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies a value that may be the name of a framebuffer object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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>[requires: v1.0][deprecated: v3.1]
        /// Determine if a name corresponds to a display list
        /// </summary>
        /// <param name="list">
        /// <para>
        /// Specifies a potential display list name.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v2.0]
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v4.1 and ARB_separate_shader_objects]
        /// Determine if a name corresponds to a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies a value that may be the name of a program pipeline object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glIsProgramPipeline")]
        public static 
        bool IsProgramPipeline(Int32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Determine if a name corresponds to a program pipeline object
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies a value that may be the name of a program pipeline object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glIsProgramPipeline")]
        public static 
        bool IsProgramPipeline(UInt32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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>[requires: v1.5]
        /// 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 = "VERSION_1_5", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Determine if a name corresponds to a renderbuffer object
        /// </summary>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies a value that may be the name of a renderbuffer object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Determine if a name corresponds to a renderbuffer object
        /// </summary>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies a value that may be the name of a renderbuffer object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_framebuffer_object", 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>[requires: v1.2 and ARB_sampler_objects]
        /// Determine if a name corresponds to a sampler object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a sampler object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glIsSampler")]
        public static 
        bool IsSampler(Int32 sampler)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsSampler((UInt32)sampler);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Determine if a name corresponds to a sampler object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a sampler object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glIsSampler")]
        public static 
        bool IsSampler(UInt32 sampler)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsSampler((UInt32)sampler);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Determines if a name corresponds to a shader object
        /// </summary>
        /// <param name="shader">
        /// <para>
        /// Specifies a potential shader object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Determine if a name corresponds to a sync object
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies a value that may be the name of a sync object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Determine if a name corresponds to a transform feedback object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a transform feedback object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glIsTransformFeedback")]
        public static 
        bool IsTransformFeedback(Int32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsTransformFeedback((UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Determine if a name corresponds to a transform feedback object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a transform feedback object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glIsTransformFeedback")]
        public static 
        bool IsTransformFeedback(UInt32 id)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glIsTransformFeedback((UInt32)id);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Determine if a name corresponds to a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies a value that may be the name of a vertex array object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_array_object", 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
        }

        
        /// <summary>[requires: v3.0 and ARB_vertex_array_object]
        /// Determine if a name corresponds to a vertex array object
        /// </summary>
        /// <param name="array">
        /// <para>
        /// Specifies a value that may be the name of a vertex array object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_array_object", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightf")]
        public static 
        void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightf((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightfv")]
        public static 
        void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glLightfv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightfv")]
        public static 
        unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightfv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLighti")]
        public static 
        void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLighti((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightiv")]
        public static 
        void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glLightiv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightiv")]
        public static 
        unsafe void Light(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightiv((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModelf")]
        public static 
        void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModelf((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
        public static 
        void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glLightModelfv((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModelfv")]
        public static 
        unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModelfv((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModeli")]
        public static 
        void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModeli((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModeliv")]
        public static 
        void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glLightModeliv((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLightModeliv")]
        public static 
        unsafe void LightModel(OpenTK.Graphics.OpenGL.LightModelParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLightModeliv((OpenTK.Graphics.OpenGL.LightModelParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v2.0]
        /// Links a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be linked.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// Replace the current matrix with the identity matrix
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glLoadIdentity")]
        public static 
        void LoadIdentity()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLoadIdentity();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.0]
        /// Specify a logical pixel operation for 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glLogicOp")]
        public static 
        void LogicOp(OpenTK.Graphics.OpenGL.LogicOp opcode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glLogicOp((OpenTK.Graphics.OpenGL.LogicOp)opcode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        void Map1(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        void Map1(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1d")]
        public static 
        unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Double u1, Double u2, Int32 stride, Int32 order, Double* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap1d((OpenTK.Graphics.OpenGL.MapTarget)target, (Double)u1, (Double)u2, (Int32)stride, (Int32)order, (Double*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        void Map1(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        void Map1(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap1f")]
        public static 
        unsafe void Map1(OpenTK.Graphics.OpenGL.MapTarget target, Single u1, Single u2, Int32 stride, Int32 order, Single* points)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMap1f((OpenTK.Graphics.OpenGL.MapTarget)target, (Single)u1, (Single)u2, (Int32)stride, (Int32)order, (Single*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2d")]
        public static 
        unsafe void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Double)u1, (Double)u2, (Int32)ustride, (Int32)uorder, (Double)v1, (Double)v2, (Int32)vstride, (Int32)vorder, (Double*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMap2f")]
        public static 
        unsafe void Map2(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.MapTarget)target, (Single)u1, (Single)u2, (Int32)ustride, (Int32)uorder, (Single)v1, (Single)v2, (Int32)vstride, (Int32)vorder, (Single*)points);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.5]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER or GL_UNIFORM_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>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glMapBuffer")]
        public static 
        IntPtr MapBuffer(OpenTK.Graphics.OpenGL.BufferTarget target, OpenTK.Graphics.OpenGL.BufferAccess access)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glMapBuffer((OpenTK.Graphics.OpenGL.BufferTarget)target, (OpenTK.Graphics.OpenGL.BufferAccess)access);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_map_buffer_range]
        /// Map a section of a buffer object's data store
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a binding to which the target buffer is bound.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies a the starting offset within the buffer of the range to be mapped.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies a length of the range to be mapped.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies a combination of access flags indicating the desired access to the range.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_map_buffer_range", Version = "3.0", EntryPoint = "glMapBufferRange")]
        public static 
        IntPtr MapBufferRange(OpenTK.Graphics.OpenGL.BufferTarget target, IntPtr offset, IntPtr length, OpenTK.Graphics.OpenGL.BufferAccessMask access)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glMapBufferRange((OpenTK.Graphics.OpenGL.BufferTarget)target, (IntPtr)offset, (IntPtr)length, (OpenTK.Graphics.OpenGL.BufferAccessMask)access);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialf")]
        public static 
        void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialf((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
        public static 
        void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glMaterialfv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialfv")]
        public static 
        unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialfv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMateriali")]
        public static 
        void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMateriali((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialiv")]
        public static 
        void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glMaterialiv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMaterialiv")]
        public static 
        unsafe void Material(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMaterialiv((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glMatrixMode")]
        public static 
        void MatrixMode(OpenTK.Graphics.OpenGL.MatrixMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMatrixMode((OpenTK.Graphics.OpenGL.MatrixMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_shader_image_load_store]
        /// Defines a barrier ordering memory transactions
        /// </summary>
        /// <param name="barriers">
        /// <para>
        /// Specifies the barriers to insert. Must be a bitwise combination of GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT, GL_ELEMENT_ARRAY_BARRIER_BIT, GL_UNIFORM_BARRIER_BIT, GL_TEXTURE_FETCH_BARRIER_BIT, GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_COMMAND_BARRIER_BIT, GL_PIXEL_BUFFER_BARRIER_BIT, GL_TEXTURE_UPDATE_BARRIER_BIT, GL_BUFFER_UPDATE_BARRIER_BIT, GL_FRAMEBUFFER_BARRIER_BIT, GL_TRANSFORM_FEEDBACK_BARRIER_BIT, GL_ATOMIC_COUNTER_BARRIER_BIT, or GL_SHADER_STORAGE_BARRIER_BIT. If the special value GL_ALL_BARRIER_BITS is specified, all supported barriers will be inserted.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_image_load_store", Version = "4.2", EntryPoint = "glMemoryBarrier")]
        public static 
        void MemoryBarrier(OpenTK.Graphics.OpenGL.MemoryBarrierFlags barriers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMemoryBarrier((OpenTK.Graphics.OpenGL.MemoryBarrierFlags)barriers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glMinmax")]
        public static 
        void Minmax(OpenTK.Graphics.OpenGL.MinmaxTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, bool sink)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (bool)sink);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specifies minimum rate at which sample shaing takes place
        /// </summary>
        /// <param name="value">
        /// <para>
        /// Specifies the rate at which samples are shaded within each covered pixel.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_4_0", 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>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] first, Int32[] count, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* first_ptr = first)
                fixed (Int32* count_ptr = count)
                {
                    Delegates.glMultiDrawArrays((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)drawcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* first_ptr = &first)
                fixed (Int32* count_ptr = &count)
                {
                    Delegates.glMultiDrawArrays((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)drawcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawArrays")]
        public static 
        unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawArrays((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first, (Int32*)count, (Int32)drawcount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
        public static 
        void MultiDrawArraysIndirect(OpenTK.Graphics.OpenGL.PrimitiveType mode, IntPtr indirect, Int32 drawcount, Int32 stride)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect, (Int32)drawcount, (Int32)stride);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
        public static 
        void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[] indirect, Int32 drawcount, Int32 stride)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
        public static 
        void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,] indirect, Int32 drawcount, Int32 stride)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
        public static 
        void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] T1[,,] indirect, Int32 drawcount, Int32 stride)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render multiple sets of primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of an array of structures containing the draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the the number of elements in the array of draw parameter structures.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawArraysIndirect")]
        public static 
        void MultiDrawArraysIndirect<T1>(OpenTK.Graphics.OpenGL.PrimitiveType mode, [InAttribute, OutAttribute] ref T1 indirect, Int32 drawcount, Int32 stride)
            where T1 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawArraysIndirect((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
                indirect = (T1)indirect_ptr.Target;
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                {
                    Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                        indices = (T3)indices_ptr.Target;
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                {
                    Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
            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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                        indices = (T3)indices_ptr.Target;
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_4", Version = "1.4", EntryPoint = "glMultiDrawElements")]
        public static 
        unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElements((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32[] basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = count)
                fixed (Int32* basevertex_ptr = basevertex)
                {
                    Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount, (Int32*)basevertex_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                        indices = (T3)indices_ptr.Target;
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, ref Int32 basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* count_ptr = &count)
                fixed (Int32* basevertex_ptr = &basevertex)
                {
                    Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount, (Int32*)basevertex_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex_ptr);
                        indices = (T3)indices_ptr.Target;
                    }
                    finally
                    {
                        indices_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 drawcount, Int32* basevertex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)drawcount, (Int32*)basevertex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 drawcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 drawcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 drawcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex);
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.2 and ARB_draw_elements_base_vertex]
        /// Render multiple sets of primitives by specifying indices of array data elements and an index to apply to each index
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count, indices and basevertex arrays.
        /// </para>
        /// </param>
        /// <param name="basevertex">
        /// <para>
        /// Specifies a pointer to the location where the base vertices are stored.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_draw_elements_base_vertex", Version = "3.2", EntryPoint = "glMultiDrawElementsBaseVertex")]
        public static 
        unsafe void MultiDrawElementsBaseVertex<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 drawcount, Int32* basevertex)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsBaseVertex((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32*)basevertex);
                indices = (T3)indices_ptr.Target;
            }
            finally
            {
                indices_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
        public static 
        void MultiDrawElementsIndirect(OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect type, IntPtr indirect, Int32 drawcount, Int32 stride)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)type, (IntPtr)indirect, (Int32)drawcount, (Int32)stride);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
        public static 
        void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect type, [InAttribute, OutAttribute] T2[] indirect, Int32 drawcount, Int32 stride)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
        public static 
        void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect type, [InAttribute, OutAttribute] T2[,] indirect, Int32 drawcount, Int32 stride)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
        public static 
        void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect type, [InAttribute, OutAttribute] T2[,,] indirect, Int32 drawcount, Int32 stride)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_multi_draw_indirect]
        /// Render indexed primitives from array data, taking parameters from memory
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
        /// </para>
        /// </param>
        /// <param name="indirect">
        /// <para>
        /// Specifies the address of a structure containing an array of draw parameters.
        /// </para>
        /// </param>
        /// <param name="drawcount">
        /// <para>
        /// Specifies the number of elements in the array addressed by indirect.
        /// </para>
        /// </param>
        /// <param name="stride">
        /// <para>
        /// Specifies the distance in basic machine units between elements of the draw parameter array.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_multi_draw_indirect", Version = "4.3", EntryPoint = "glMultiDrawElementsIndirect")]
        public static 
        void MultiDrawElementsIndirect<T2>(OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect mode, OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect type, [InAttribute, OutAttribute] ref T2 indirect, Int32 drawcount, Int32 stride)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle indirect_ptr = GCHandle.Alloc(indirect, GCHandleType.Pinned);
            try
            {
                Delegates.glMultiDrawElementsIndirect((OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)mode, (OpenTK.Graphics.OpenGL.ArbMultiDrawIndirect)type, (IntPtr)indirect_ptr.AddrOfPinnedObject(), (Int32)drawcount, (Int32)stride);
                indirect = (T2)indirect_ptr.Target;
            }
            finally
            {
                indirect_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1d")]
        public static 
        void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1d((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1dv")]
        public static 
        unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1f")]
        public static 
        void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1f((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1fv")]
        public static 
        unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1i")]
        public static 
        void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1i((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1iv")]
        public static 
        unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1s")]
        public static 
        void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1s((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord1sv")]
        public static 
        unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord1sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2d")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2d((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2dv")]
        public static 
        unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2f")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2f((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2fv")]
        public static 
        unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2i")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2i((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2iv")]
        public static 
        unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2s")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2s((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord2sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord2sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord2sv")]
        public static 
        unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord2sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3d")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t, Double r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3d((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t, (Double)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3dv")]
        public static 
        unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3f")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t, Single r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3f((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t, (Single)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3fv")]
        public static 
        unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3i")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t, Int32 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3i((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t, (Int32)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3iv")]
        public static 
        unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3s")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t, Int16 r)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3s((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t, (Int16)r);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord3sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord3sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord3sv")]
        public static 
        unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord3sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4d")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double s, Double t, Double r, Double q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4d((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double)s, (Double)t, (Double)r, (Double)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4dv")]
        public static 
        unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4dv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4f")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single s, Single t, Single r, Single q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4f((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single)s, (Single)t, (Single)r, (Single)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4fv")]
        public static 
        unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4fv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4i")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32 s, Int32 t, Int32 r, Int32 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4i((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32)s, (Int32)t, (Int32)r, (Int32)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4iv")]
        public static 
        unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4iv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4s")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16 s, Int16 t, Int16 r, Int16 q)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4s((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16)s, (Int16)t, (Int16)r, (Int16)q);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = v)
                {
                    Delegates.glMultiTexCoord4sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, ref Int16 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* v_ptr = &v)
                {
                    Delegates.glMultiTexCoord4sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", Version = "1.3", EntryPoint = "glMultiTexCoord4sv")]
        public static 
        unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.TextureUnit target, Int16* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoord4sv((OpenTK.Graphics.OpenGL.TextureUnit)target, (Int16*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP1ui")]
        public static 
        void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP1ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP1ui")]
        public static 
        void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP1ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP1uiv")]
        public static 
        unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP1uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP1uiv")]
        public static 
        unsafe void MultiTexCoordP1(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP1uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP2ui")]
        public static 
        void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP2ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP2ui")]
        public static 
        void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP2ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP2uiv")]
        public static 
        unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP2uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP2uiv")]
        public static 
        unsafe void MultiTexCoordP2(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP2uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP3ui")]
        public static 
        void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP3ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP3ui")]
        public static 
        void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP3ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP3uiv")]
        public static 
        unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP3uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP3uiv")]
        public static 
        unsafe void MultiTexCoordP3(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP3uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP4ui")]
        public static 
        void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP4ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP4ui")]
        public static 
        void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP4ui((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP4uiv")]
        public static 
        unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP4uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glMultiTexCoordP4uiv")]
        public static 
        unsafe void MultiTexCoordP4(OpenTK.Graphics.OpenGL.TextureUnit texture, OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glMultiTexCoordP4uiv((OpenTK.Graphics.OpenGL.TextureUnit)texture, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.3][deprecated: v3.1]
        /// 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 = "VERSION_1_3", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glNewList")]
        public static 
        void NewList(Int32 list, OpenTK.Graphics.OpenGL.ListMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNewList((UInt32)list, (OpenTK.Graphics.OpenGL.ListMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glNewList")]
        public static 
        void NewList(UInt32 list, OpenTK.Graphics.OpenGL.ListMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNewList((UInt32)list, (OpenTK.Graphics.OpenGL.ListMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glNormalP3ui")]
        public static 
        void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glNormalP3ui")]
        public static 
        void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glNormalP3uiv")]
        public static 
        unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glNormalP3uiv")]
        public static 
        unsafe void NormalP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glNormalPointer((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glNormalPointer((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glNormalPointer")]
        public static 
        void NormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T2)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object to label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectLabel")]
        public static 
        void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, Int32 name, Int32 length, String label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)length, (String)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a named object identified within a namespace
        /// </summary>
        /// <param name="identifier">
        /// <para>
        /// The namespace from which the name of the object is allocated.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the object to label.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectLabel")]
        public static 
        void ObjectLabel(OpenTK.Graphics.OpenGL.ObjectLabelIdentifier identifier, UInt32 name, Int32 length, String label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glObjectLabel((OpenTK.Graphics.OpenGL.ObjectLabelIdentifier)identifier, (UInt32)name, (Int32)length, (String)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// A pointer identifying a sync object.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
        public static 
        void ObjectPtrLabel(IntPtr ptr, Int32 length, String label)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glObjectPtrLabel((IntPtr)ptr, (Int32)length, (String)label);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// A pointer identifying a sync object.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
        public static 
        void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[] ptr, Int32 length, String label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)length, (String)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// A pointer identifying a sync object.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
        public static 
        void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,] ptr, Int32 length, String label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)length, (String)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// A pointer identifying a sync object.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
        public static 
        void ObjectPtrLabel<T0>([InAttribute, OutAttribute] T0[,,] ptr, Int32 length, String label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)length, (String)label);
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Label a a sync object identified by a pointer
        /// </summary>
        /// <param name="ptr">
        /// <para>
        /// A pointer identifying a sync object.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the label to be used for the object.
        /// </para>
        /// </param>
        /// <param name="label">
        /// <para>
        /// The address of a string containing the label to assign to the object.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glObjectPtrLabel")]
        public static 
        void ObjectPtrLabel<T0>([InAttribute, OutAttribute] ref T0 ptr, Int32 length, String label)
            where T0 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle ptr_ptr = GCHandle.Alloc(ptr, GCHandleType.Pinned);
            try
            {
                Delegates.glObjectPtrLabel((IntPtr)ptr_ptr.AddrOfPinnedObject(), (Int32)length, (String)label);
                ptr = (T0)ptr_ptr.Target;
            }
            finally
            {
                ptr_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2 and ARB_tessellation_shader]
        /// Specifies the parameters for patch primitives
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to set. The symbolc constants GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL, and GL_PATCH_DEFAULT_INNER_LEVEL are accepted.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value for the parameter given by pname.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array containing the new values for the parameter given by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_tessellation_shader", Version = "1.2", EntryPoint = "glPatchParameterfv")]
        public static 
        void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, Single[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = values)
                {
                    Delegates.glPatchParameterfv((OpenTK.Graphics.OpenGL.PatchParameterFloat)pname, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_tessellation_shader]
        /// Specifies the parameters for patch primitives
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to set. The symbolc constants GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL, and GL_PATCH_DEFAULT_INNER_LEVEL are accepted.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value for the parameter given by pname.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array containing the new values for the parameter given by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_tessellation_shader", Version = "1.2", EntryPoint = "glPatchParameterfv")]
        public static 
        void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, ref Single values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = &values)
                {
                    Delegates.glPatchParameterfv((OpenTK.Graphics.OpenGL.PatchParameterFloat)pname, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_tessellation_shader]
        /// Specifies the parameters for patch primitives
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to set. The symbolc constants GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL, and GL_PATCH_DEFAULT_INNER_LEVEL are accepted.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value for the parameter given by pname.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array containing the new values for the parameter given by pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_tessellation_shader", Version = "1.2", EntryPoint = "glPatchParameterfv")]
        public static 
        unsafe void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterFloat pname, Single* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPatchParameterfv((OpenTK.Graphics.OpenGL.PatchParameterFloat)pname, (Single*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_tessellation_shader]
        /// Specifies the parameters for patch primitives
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to set. The symbolc constants GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL, and GL_PATCH_DEFAULT_INNER_LEVEL are accepted.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value for the parameter given by pname.
        /// </para>
        /// </param>
        /// <param name="values">
        /// <para>
        /// Specifies the address of an array containing the new values for the parameter given by pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_tessellation_shader", Version = "1.2", EntryPoint = "glPatchParameteri")]
        public static 
        void PatchParameter(OpenTK.Graphics.OpenGL.PatchParameterInt pname, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPatchParameteri((OpenTK.Graphics.OpenGL.PatchParameterInt)pname, (Int32)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Pause transform feedback operations
        /// </summary>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glPauseTransformFeedback")]
        public static 
        void PauseTransformFeedback()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPauseTransformFeedback();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Single[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = values)
                {
                    Delegates.glPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Single values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* values_ptr = &values)
                {
                    Delegates.glPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (Single*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapfv")]
        public static 
        unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Single* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapfv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (Single*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = values)
                {
                    Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Int32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* values_ptr = &values)
                {
                    Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt32[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = values)
                {
                    Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref UInt32 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* values_ptr = &values)
                {
                    Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapuiv")]
        public static 
        unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt32* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapuiv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt32*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = values)
                {
                    Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref Int16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int16* values_ptr = &values)
                {
                    Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, Int16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt16[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = values)
                {
                    Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, ref UInt16 values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt16* values_ptr = &values)
                {
                    Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelMapusv")]
        public static 
        unsafe void PixelMap(OpenTK.Graphics.OpenGL.PixelMap map, Int32 mapsize, UInt16* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapusv((OpenTK.Graphics.OpenGL.PixelMap)map, (Int32)mapsize, (UInt16*)values);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelMapx")]
        public static 
        void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, int[] values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (int* values_ptr = values)
                {
                    Delegates.glPixelMapx((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelMapx")]
        public static 
        void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, ref int values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (int* values_ptr = &values)
                {
                    Delegates.glPixelMapx((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelMapx")]
        public static 
        unsafe void PixelMapx(OpenTK.Graphics.OpenGL.OesFixedPoint map, Int32 size, int* values)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelMapx((OpenTK.Graphics.OpenGL.OesFixedPoint)map, (Int32)size, (int*)values);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelStoref")]
        public static 
        void PixelStore(OpenTK.Graphics.OpenGL.PixelStoreParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelStoref((OpenTK.Graphics.OpenGL.PixelStoreParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelStorei")]
        public static 
        void PixelStore(OpenTK.Graphics.OpenGL.PixelStoreParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelStorei((OpenTK.Graphics.OpenGL.PixelStoreParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and OES_fixed_point]</summary>
        [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelStorex")]
        public static 
        void PixelStorex(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelStorex((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelTransferf")]
        public static 
        void PixelTransfer(OpenTK.Graphics.OpenGL.PixelTransferParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelTransferf((OpenTK.Graphics.OpenGL.PixelTransferParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPixelTransferi")]
        public static 
        void PixelTransfer(OpenTK.Graphics.OpenGL.PixelTransferParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPixelTransferi((OpenTK.Graphics.OpenGL.PixelTransferParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// Specify the pixel zoom factors
        /// </summary>
        /// <param name="xfactor">
        /// <para>
        /// Specify the and zoom factors for pixel write operations.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", 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>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterf")]
        public static 
        void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameterf((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
        public static 
        void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glPointParameterfv((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameterfv")]
        public static 
        unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameterfv((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteri")]
        public static 
        void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameteri((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
        public static 
        void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glPointParameteriv((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glPointParameteriv")]
        public static 
        unsafe void PointParameter(OpenTK.Graphics.OpenGL.PointParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPointParameteriv((OpenTK.Graphics.OpenGL.PointParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// Select a polygon rasterization mode
        /// </summary>
        /// <param name="face">
        /// <para>
        /// Specifies the polygons that mode applies to. Must be 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPolygonMode")]
        public static 
        void PolygonMode(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.PolygonMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPolygonMode((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.PolygonMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPopAttrib")]
        public static 
        void PopAttrib()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopAttrib();
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.1][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_1", Version = "1.1", EntryPoint = "glPopClientAttrib")]
        public static 
        void PopClientAttrib()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopClientAttrib();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Pop the active debug group
        /// </summary>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glPopDebugGroup")]
        public static 
        void PopDebugGroup()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopDebugGroup();
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPopMatrix")]
        public static 
        void PopMatrix()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopMatrix();
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPopName")]
        public static 
        void PopName()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPopName();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Specify the primitive restart index
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the value to be interpreted as the primitive restart index.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", 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
        }

        
        /// <summary>[requires: v3.1]
        /// Specify the primitive restart index
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the value to be interpreted as the primitive restart index.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", 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>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary, (Int32)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(Int32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                binary = (T2)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary, (Int32)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] T2[,,] binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_get_program_binary]
        /// Load a program object with a program binary
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object into which to load a program binary.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the binary data in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address an array containing the binary to be loaded into program.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the number of bytes contained in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "4.1", EntryPoint = "glProgramBinary")]
        public static 
        void ProgramBinary<T2>(UInt32 program, OpenTK.Graphics.OpenGL.BinaryFormat binaryFormat, [InAttribute, OutAttribute] ref T2 binary, Int32 length)
            where T2 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glProgramBinary((UInt32)program, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryFormat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                binary = (T2)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_get_program_binary]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "3.0", EntryPoint = "glProgramParameteri")]
        public static 
        void ProgramParameter(Int32 program, OpenTK.Graphics.OpenGL.ProgramParameterPName pname, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramParameteri((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameterPName)pname, (Int32)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_get_program_binary]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_get_program_binary", Version = "3.0", EntryPoint = "glProgramParameteri")]
        public static 
        void ProgramParameter(UInt32 program, OpenTK.Graphics.OpenGL.ProgramParameterPName pname, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramParameteri((UInt32)program, (OpenTK.Graphics.OpenGL.ProgramParameterPName)pname, (Int32)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1d")]
        public static 
        void ProgramUniform1(Int32 program, Int32 location, Double v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1d((UInt32)program, (Int32)location, (Double)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1d")]
        public static 
        void ProgramUniform1(UInt32 program, Int32 location, Double v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1d((UInt32)program, (Int32)location, (Double)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
        public static 
        void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform1dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
        public static 
        unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
        public static 
        void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform1dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1dv")]
        public static 
        unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1f")]
        public static 
        void ProgramUniform1(Int32 program, Int32 location, Single v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1f((UInt32)program, (Int32)location, (Single)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1f")]
        public static 
        void ProgramUniform1(UInt32 program, Int32 location, Single v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1f((UInt32)program, (Int32)location, (Single)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
        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.glProgramUniform1fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
        public static 
        unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
        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.glProgramUniform1fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1fv")]
        public static 
        unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1i")]
        public static 
        void ProgramUniform1(Int32 program, Int32 location, Int32 v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1i((UInt32)program, (Int32)location, (Int32)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1i")]
        public static 
        void ProgramUniform1(UInt32 program, Int32 location, Int32 v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1i((UInt32)program, (Int32)location, (Int32)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
        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.glProgramUniform1iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
        public static 
        unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
        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.glProgramUniform1iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1iv")]
        public static 
        unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1ui")]
        public static 
        void ProgramUniform1(UInt32 program, Int32 location, UInt32 v0)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1ui((UInt32)program, (Int32)location, (UInt32)v0);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
        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.glProgramUniform1uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform1uiv")]
        public static 
        unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform1uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2d")]
        public static 
        void ProgramUniform2(Int32 program, Int32 location, Double v0, Double v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2d((UInt32)program, (Int32)location, (Double)v0, (Double)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2d")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, Double v0, Double v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2d((UInt32)program, (Int32)location, (Double)v0, (Double)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2dv")]
        public static 
        unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2f")]
        public static 
        void ProgramUniform2(Int32 program, Int32 location, Single v0, Single v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2f((UInt32)program, (Int32)location, (Single)v0, (Single)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2f")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, Single v0, Single v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2f((UInt32)program, (Int32)location, (Single)v0, (Single)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        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.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        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.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        public static 
        unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        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.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        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.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2fv")]
        public static 
        unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2i")]
        public static 
        void ProgramUniform2(Int32 program, Int32 location, Int32 v0, Int32 v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2i")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, Int32 v0, Int32 v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
        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.glProgramUniform2iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
        public static 
        unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
        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.glProgramUniform2iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2iv")]
        public static 
        unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2ui")]
        public static 
        void ProgramUniform2(UInt32 program, Int32 location, UInt32 v0, UInt32 v1)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2ui((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
        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.glProgramUniform2uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
        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.glProgramUniform2uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform2uiv")]
        public static 
        unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform2uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3d")]
        public static 
        void ProgramUniform3(Int32 program, Int32 location, Double v0, Double v1, Double v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3d((UInt32)program, (Int32)location, (Double)v0, (Double)v1, (Double)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3d")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, Double v0, Double v1, Double v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3d((UInt32)program, (Int32)location, (Double)v0, (Double)v1, (Double)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3dv")]
        public static 
        unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3f")]
        public static 
        void ProgramUniform3(Int32 program, Int32 location, Single v0, Single v1, Single v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3f((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3f")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, Single v0, Single v1, Single v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3f((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        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.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        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.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        public static 
        unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        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.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        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.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3fv")]
        public static 
        unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3i")]
        public static 
        void ProgramUniform3(Int32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3i")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, Int32 v0, Int32 v1, Int32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        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.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        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.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        public static 
        unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        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.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        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.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3iv")]
        public static 
        unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3ui")]
        public static 
        void ProgramUniform3(UInt32 program, Int32 location, UInt32 v0, UInt32 v1, UInt32 v2)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3ui((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
        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.glProgramUniform3uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
        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.glProgramUniform3uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform3uiv")]
        public static 
        unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform3uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4d")]
        public static 
        void ProgramUniform4(Int32 program, Int32 location, Double v0, Double v1, Double v2, Double v3)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4d((UInt32)program, (Int32)location, (Double)v0, (Double)v1, (Double)v2, (Double)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4d")]
        public static 
        void ProgramUniform4(UInt32 program, Int32 location, Double v0, Double v1, Double v2, Double v3)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4d((UInt32)program, (Int32)location, (Double)v0, (Double)v1, (Double)v2, (Double)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4dv")]
        public static 
        unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4dv((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4f")]
        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.glProgramUniform4f((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4f")]
        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.glProgramUniform4f((UInt32)program, (Int32)location, (Single)v0, (Single)v1, (Single)v2, (Single)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        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.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        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.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        public static 
        unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        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.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        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.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4fv")]
        public static 
        unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4fv((UInt32)program, (Int32)location, (Int32)count, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4i")]
        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.glProgramUniform4i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4i")]
        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.glProgramUniform4i((UInt32)program, (Int32)location, (Int32)v0, (Int32)v1, (Int32)v2, (Int32)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        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.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        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.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        public static 
        unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        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.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        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.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4iv")]
        public static 
        unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4iv((UInt32)program, (Int32)location, (Int32)count, (Int32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4ui")]
        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.glProgramUniform4ui((UInt32)program, (Int32)location, (UInt32)v0, (UInt32)v1, (UInt32)v2, (UInt32)v3);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
        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.glProgramUniform4uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
        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.glProgramUniform4uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniform4uiv")]
        public static 
        unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniform4uiv((UInt32)program, (Int32)location, (Int32)count, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2dv")]
        public static 
        unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        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.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        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.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        public static 
        unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        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.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        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.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2fv")]
        public static 
        unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3dv")]
        public static 
        unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        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.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        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.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        public static 
        unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        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.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        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.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x3fv")]
        public static 
        unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4dv")]
        public static 
        unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        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.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        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.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        public static 
        unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        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.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        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.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix2x4fv")]
        public static 
        unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix2x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3dv")]
        public static 
        unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        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.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        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.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        public static 
        unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        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.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        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.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3fv")]
        public static 
        unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2dv")]
        public static 
        unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        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.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        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.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        public static 
        unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        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.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        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.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x2fv")]
        public static 
        unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4dv")]
        public static 
        unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        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.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        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.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        public static 
        unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        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.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        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.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix3x4fv")]
        public static 
        unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix3x4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4dv")]
        public static 
        unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        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.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        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.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        public static 
        unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        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.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        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.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4fv")]
        public static 
        unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2dv")]
        public static 
        unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x2dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        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.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        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.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        public static 
        unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        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.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        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.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x2fv")]
        public static 
        unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x2fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3dv")]
        public static 
        unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x3dv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        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.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        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.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        public static 
        unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        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.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        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.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glProgramUniformMatrix4x3fv")]
        public static 
        unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Single* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProgramUniformMatrix4x3fv((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Single*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_provoking_vertex]
        /// Specifiy the vertex to be used as the source of data for flat shaded varyings
        /// </summary>
        /// <param name="provokeMode">
        /// <para>
        /// Specifies the vertex to be used as the source of data for flat shaded varyings.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_provoking_vertex", Version = "1.2", EntryPoint = "glProvokingVertex")]
        public static 
        void ProvokingVertex(OpenTK.Graphics.OpenGL.ProvokingVertexMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glProvokingVertex((OpenTK.Graphics.OpenGL.ProvokingVertexMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glPushAttrib")]
        public static 
        void PushAttrib(OpenTK.Graphics.OpenGL.AttribMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushAttrib((OpenTK.Graphics.OpenGL.AttribMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glPushClientAttrib")]
        public static 
        void PushClientAttrib(OpenTK.Graphics.OpenGL.ClientAttribMask mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushClientAttrib((OpenTK.Graphics.OpenGL.ClientAttribMask)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Push a named debug group into the command stream
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The identifier of the message.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the message to be sent to the debug output stream.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The a string containing the message to be sent to the debug output stream.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glPushDebugGroup")]
        public static 
        void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, Int32 id, Int32 length, String message)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushDebugGroup((OpenTK.Graphics.OpenGL.DebugSourceExternal)source, (UInt32)id, (Int32)length, (String)message);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and KHR_debug]
        /// Push a named debug group into the command stream
        /// </summary>
        /// <param name="source">
        /// <para>
        /// The source of the debug message.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// The identifier of the message.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The length of the message to be sent to the debug output stream.
        /// </para>
        /// </param>
        /// <param name="message">
        /// <para>
        /// The a string containing the message to be sent to the debug output stream.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "KHR_debug", Version = "4.3", EntryPoint = "glPushDebugGroup")]
        public static 
        void PushDebugGroup(OpenTK.Graphics.OpenGL.DebugSourceExternal source, UInt32 id, Int32 length, String message)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushDebugGroup((OpenTK.Graphics.OpenGL.DebugSourceExternal)source, (UInt32)id, (Int32)length, (String)message);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// Push and pop the current matrix stack
        /// </summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glPushMatrix")]
        public static 
        void PushMatrix()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glPushMatrix();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2 and ARB_timer_query]
        /// Record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specify the name of a query object into which to record the GL time.
        /// </para>
        /// </param>
        /// <param name="target">
        /// <para>
        /// Specify the counter to query. target must be GL_TIMESTAMP.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glQueryCounter")]
        public static 
        void QueryCounter(Int32 id, OpenTK.Graphics.OpenGL.QueryCounterTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glQueryCounter((UInt32)id, (OpenTK.Graphics.OpenGL.QueryCounterTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_timer_query]
        /// Record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specify the name of a query object into which to record the GL time.
        /// </para>
        /// </param>
        /// <param name="target">
        /// <para>
        /// Specify the counter to query. target must be GL_TIMESTAMP.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_timer_query", Version = "1.2", EntryPoint = "glQueryCounter")]
        public static 
        void QueryCounter(UInt32 id, OpenTK.Graphics.OpenGL.QueryCounterTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glQueryCounter((UInt32)id, (OpenTK.Graphics.OpenGL.QueryCounterTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 the constants GL_COLOR_ATTACHMENTi.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadBuffer")]
        public static 
        void ReadBuffer(OpenTK.Graphics.OpenGL.ReadBufferMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glReadBuffer((OpenTK.Graphics.OpenGL.ReadBufferMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, or GL_FLOAT_32_UNSIGNED_INT_24_8_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glReadPixels((Int32)x, (Int32)y, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, or GL_FLOAT_32_UNSIGNED_INT_24_8_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, or GL_FLOAT_32_UNSIGNED_INT_24_8_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, or GL_FLOAT_32_UNSIGNED_INT_24_8_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL, GL_RED, GL_GREEN, GL_BLUE, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of the pixel data. Must be one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_HALF_FLOAT, 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, GL_UNSIGNED_INT_2_10_10_10_REV, GL_UNSIGNED_INT_24_8, GL_UNSIGNED_INT_10F_11F_11F_REV, GL_UNSIGNED_INT_5_9_9_9_REV, or GL_FLOAT_32_UNSIGNED_INT_24_8_REV.
        /// </para>
        /// </param>
        /// <param name="data">
        /// <para>
        /// Returns the pixel data.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glReadPixels")]
        public static 
        void ReadPixels<T6>(Int32 x, Int32 y, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T6)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v4.1 and ARB_ES2_compatibility]
        /// Release resources consumed by the implementation's shader compiler
        /// </summary>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glReleaseShaderCompiler")]
        public static 
        void ReleaseShaderCompiler()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glReleaseShaderCompiler();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Establish data storage, format and dimensions of a renderbuffer object's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a binding to which the target of the allocation and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format to use for the renderbuffer object's image.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glRenderbufferStorage")]
        public static 
        void RenderbufferStorage(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferStorage internalformat, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRenderbufferStorage((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0 and ARB_framebuffer_object]
        /// Establish data storage, format, dimensions and sample count of a renderbuffer object's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a binding to which the target of the allocation and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// Specifies the number of samples to be used for the renderbuffer object's storage.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format to use for the renderbuffer object's image.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_framebuffer_object", Version = "3.0", EntryPoint = "glRenderbufferStorageMultisample")]
        public static 
        void RenderbufferStorageMultisample(OpenTK.Graphics.OpenGL.RenderbufferTarget target, Int32 samples, OpenTK.Graphics.OpenGL.RenderbufferStorage internalformat, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glRenderbufferStorageMultisample((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (Int32)samples, (OpenTK.Graphics.OpenGL.RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glRenderMode")]
        public static 
        Int32 RenderMode(OpenTK.Graphics.OpenGL.RenderingMode mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glRenderMode((OpenTK.Graphics.OpenGL.RenderingMode)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// Reset histogram table entries to zero
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glResetHistogram")]
        public static 
        void ResetHistogram(OpenTK.Graphics.OpenGL.HistogramTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glResetHistogram((OpenTK.Graphics.OpenGL.HistogramTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// Reset minmax table entries to initial values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_2", Version = "1.2", EntryPoint = "glResetMinmax")]
        public static 
        void ResetMinmax(OpenTK.Graphics.OpenGL.MinmaxTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glResetMinmax((OpenTK.Graphics.OpenGL.MinmaxTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_transform_feedback2]
        /// Resume transform feedback operations
        /// </summary>
        [AutoGenerated(Category = "ARB_transform_feedback2", Version = "1.2", EntryPoint = "glResumeTransformFeedback")]
        public static 
        void ResumeTransformFeedback()
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glResumeTransformFeedback();
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.3]
        /// 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 = "VERSION_1_3", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Set the value of a sub-word of the sample mask
        /// </summary>
        /// <param name="maskNumber">
        /// <para>
        /// Specifies which 32-bit sub-word of the sample mask to update.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies the new value of the mask sub-word.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_multisample", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Set the value of a sub-word of the sample mask
        /// </summary>
        /// <param name="maskNumber">
        /// <para>
        /// Specifies which 32-bit sub-word of the sample mask to update.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// Specifies the new value of the mask sub-word.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_multisample", 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>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterf")]
        public static 
        void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterf((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterf")]
        public static 
        void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterf((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterfv")]
        public static 
        void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* param_ptr = param)
                {
                    Delegates.glSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterfv")]
        public static 
        unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterfv")]
        public static 
        void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* param_ptr = param)
                {
                    Delegates.glSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterfv")]
        public static 
        unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Single* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterfv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Single*)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteri")]
        public static 
        void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameteri((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteri")]
        public static 
        void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameteri((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = param)
                {
                    Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = &param)
                {
                    Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        unsafe void SamplerParameterI(Int32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = param)
                {
                    Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = &param)
                {
                    Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIiv")]
        public static 
        unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, Int32* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterIiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (Int32*)param);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIuiv")]
        public static 
        void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, UInt32[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* param_ptr = param)
                {
                    Delegates.glSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIuiv")]
        public static 
        void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, ref UInt32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* param_ptr = &param)
                {
                    Delegates.glSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_sampler_objects]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameterIuiv")]
        public static 
        unsafe void SamplerParameterI(UInt32 sampler, OpenTK.Graphics.OpenGL.ArbSamplerObjects pname, UInt32* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameterIuiv((UInt32)sampler, (OpenTK.Graphics.OpenGL.ArbSamplerObjects)pname, (UInt32*)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteriv")]
        public static 
        void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = param)
                {
                    Delegates.glSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteriv")]
        public static 
        unsafe void SamplerParameter(Int32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteriv")]
        public static 
        void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32[] param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* param_ptr = param)
                {
                    Delegates.glSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)param_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sampler_objects]
        /// Set sampler parameters
        /// </summary>
        /// <param name="sampler">
        /// <para>
        /// Specifies the sampler object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the symbolic name of a single-valued sampler parameter. pname can be one of the following: GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_LOD_BIAS GL_TEXTURE_COMPARE_MODE, or GL_TEXTURE_COMPARE_FUNC.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sampler_objects", Version = "1.2", EntryPoint = "glSamplerParameteriv")]
        public static 
        unsafe void SamplerParameter(UInt32 sampler, OpenTK.Graphics.OpenGL.SamplerParameter pname, Int32* param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSamplerParameteriv((UInt32)sampler, (OpenTK.Graphics.OpenGL.SamplerParameter)pname, (Int32*)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        void ScissorArray(Int32 first, Int32 count, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        void ScissorArray(Int32 first, Int32 count, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        unsafe void ScissorArray(Int32 first, Int32 count, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        void ScissorArray(UInt32 first, Int32 count, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        void ScissorArray(UInt32 first, Int32 count, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specifies the index of the first viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of scissor boxes to modify.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorArrayv")]
        public static 
        unsafe void ScissorArray(UInt32 first, Int32 count, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorArrayv((UInt32)first, (Int32)count, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexed")]
        public static 
        void ScissorIndexed(Int32 index, Int32 left, Int32 bottom, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorIndexed((UInt32)index, (Int32)left, (Int32)bottom, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexed")]
        public static 
        void ScissorIndexed(UInt32 index, Int32 left, Int32 bottom, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorIndexed((UInt32)index, (Int32)left, (Int32)bottom, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        void ScissorIndexed(Int32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glScissorIndexedv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        void ScissorIndexed(Int32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glScissorIndexedv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        unsafe void ScissorIndexed(Int32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorIndexedv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        void ScissorIndexed(UInt32 index, Int32[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = v)
                {
                    Delegates.glScissorIndexedv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        void ScissorIndexed(UInt32 index, ref Int32 v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* v_ptr = &v)
                {
                    Delegates.glScissorIndexedv((UInt32)index, (Int32*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Define the scissor box for a specific viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the viewport whose scissor box to modify.
        /// </para>
        /// </param>
        /// <param name="left">
        /// <para>
        /// Specify the coordinate of the bottom left corner of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specify ths dimensions of the scissor box, in pixels.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// For glScissorIndexedv, specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glScissorIndexedv")]
        public static 
        unsafe void ScissorIndexed(UInt32 index, Int32* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glScissorIndexedv((UInt32)index, (Int32*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glSecondaryColorP3ui")]
        public static 
        void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glSecondaryColorP3ui")]
        public static 
        void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glSecondaryColorP3uiv")]
        public static 
        unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glSecondaryColorP3uiv")]
        public static 
        unsafe void SecondaryColorP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* color)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)color);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSecondaryColorPointer((Int32)size, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", Version = "1.4", EntryPoint = "glSecondaryColorPointer")]
        public static 
        void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T3)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        unsafe void SelectBuffer(Int32 size, [OutAttribute] Int32* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        void SelectBuffer(Int32 size, [OutAttribute] 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glSelectBuffer")]
        public static 
        unsafe void SelectBuffer(Int32 size, [OutAttribute] UInt32* buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSelectBuffer((Int32)size, (UInt32*)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr row, IntPtr column)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glSeparableFilter2D((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row, (IntPtr)column);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2][deprecated: v3.1]
        /// 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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glSeparableFilter2D")]
        public static 
        void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.SeparableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 row, [InAttribute, OutAttribute] ref 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((OpenTK.Graphics.OpenGL.SeparableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                row = (T6)row_ptr.Target;
                column = (T7)column_ptr.Target;
            }
            finally
            {
                row_ptr.Free();
                column_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glShadeModel")]
        public static 
        void ShadeModel(OpenTK.Graphics.OpenGL.ShadingModel mode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShadeModel((OpenTK.Graphics.OpenGL.ShadingModel)mode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = shaders)
                {
                    Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, Int32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                        binary = (T3)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = &shaders)
                {
                    Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref Int32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                        binary = (T3)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, Int32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                binary = (T3)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = shaders)
                {
                    Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, UInt32[] shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                        binary = (T3)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = &shaders)
                {
                    Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        void ShaderBinary<T3>(Int32 count, ref UInt32 shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* shaders_ptr = &shaders)
                {
                    GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
                    try
                    {
                        Delegates.glShaderBinary((Int32)count, (UInt32*)shaders_ptr, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                        binary = (T3)binary_ptr.Target;
                    }
                    finally
                    {
                        binary_ptr.Free();
                    }
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, IntPtr binary, Int32 length)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary, (Int32)length);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] T3[,,] binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_ES2_compatibility]
        /// Load pre-compiled shader binaries
        /// </summary>
        /// <param name="count">
        /// <para>
        /// Specifies the number of shader object handles contained in shaders.
        /// </para>
        /// </param>
        /// <param name="shaders">
        /// <para>
        /// Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.
        /// </para>
        /// </param>
        /// <param name="binaryFormat">
        /// <para>
        /// Specifies the format of the shader binaries contained in binary.
        /// </para>
        /// </param>
        /// <param name="binary">
        /// <para>
        /// Specifies the address of an array of bytes containing pre-compiled binary shader code.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// Specifies the length of the array whose address is given in binary.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_ES2_compatibility", Version = "4.1", EntryPoint = "glShaderBinary")]
        public static 
        unsafe void ShaderBinary<T3>(Int32 count, UInt32* shaders, OpenTK.Graphics.OpenGL.BinaryFormat binaryformat, [InAttribute, OutAttribute] ref T3 binary, Int32 length)
            where T3 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle binary_ptr = GCHandle.Alloc(binary, GCHandleType.Pinned);
            try
            {
                Delegates.glShaderBinary((Int32)count, (UInt32*)shaders, (OpenTK.Graphics.OpenGL.BinaryFormat)binaryformat, (IntPtr)binary_ptr.AddrOfPinnedObject(), (Int32)length);
                binary = (T3)binary_ptr.Target;
            }
            finally
            {
                binary_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        void ShaderSource(Int32 shader, Int32 count, String[] @string, 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glShaderSource")]
        public static 
        void ShaderSource(UInt32 shader, Int32 count, String[] @string, 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v4.3 and ARB_shader_storage_buffer_object]
        /// Change an active shader storage block binding
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing the block whose binding to change.
        /// </para>
        /// </param>
        /// <param name="storageBlockIndex">
        /// <para>
        /// The index storage block within the program.
        /// </para>
        /// </param>
        /// <param name="storageBlockBinding">
        /// <para>
        /// The index storage block binding to associate with the specified storage block.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_storage_buffer_object", Version = "4.3", EntryPoint = "glShaderStorageBlockBinding")]
        public static 
        void ShaderStorageBlockBinding(Int32 program, Int32 storageBlockIndex, Int32 storageBlockBinding)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderStorageBlockBinding((UInt32)program, (UInt32)storageBlockIndex, (UInt32)storageBlockBinding);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_shader_storage_buffer_object]
        /// Change an active shader storage block binding
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing the block whose binding to change.
        /// </para>
        /// </param>
        /// <param name="storageBlockIndex">
        /// <para>
        /// The index storage block within the program.
        /// </para>
        /// </param>
        /// <param name="storageBlockBinding">
        /// <para>
        /// The index storage block binding to associate with the specified storage block.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_storage_buffer_object", Version = "4.3", EntryPoint = "glShaderStorageBlockBinding")]
        public static 
        void ShaderStorageBlockBinding(UInt32 program, UInt32 storageBlockIndex, UInt32 storageBlockBinding)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glShaderStorageBlockBinding((UInt32)program, (UInt32)storageBlockIndex, (UInt32)storageBlockBinding);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glStencilFunc")]
        public static 
        void StencilFunc(OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFunc((OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glStencilFunc")]
        public static 
        void StencilFunc(OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFunc((OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
        public static 
        void StencilFuncSeparate(OpenTK.Graphics.OpenGL.StencilFace face, OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFuncSeparate((OpenTK.Graphics.OpenGL.StencilFace)face, (OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glStencilFuncSeparate")]
        public static 
        void StencilFuncSeparate(OpenTK.Graphics.OpenGL.StencilFace face, OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilFuncSeparate((OpenTK.Graphics.OpenGL.StencilFace)face, (OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glStencilMaskSeparate")]
        public static 
        void StencilMaskSeparate(OpenTK.Graphics.OpenGL.StencilFace face, Int32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMaskSeparate((OpenTK.Graphics.OpenGL.StencilFace)face, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glStencilMaskSeparate")]
        public static 
        void StencilMaskSeparate(OpenTK.Graphics.OpenGL.StencilFace face, UInt32 mask)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilMaskSeparate((OpenTK.Graphics.OpenGL.StencilFace)face, (UInt32)mask);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glStencilOp")]
        public static 
        void StencilOp(OpenTK.Graphics.OpenGL.StencilOp fail, OpenTK.Graphics.OpenGL.StencilOp zfail, OpenTK.Graphics.OpenGL.StencilOp zpass)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilOp((OpenTK.Graphics.OpenGL.StencilOp)fail, (OpenTK.Graphics.OpenGL.StencilOp)zfail, (OpenTK.Graphics.OpenGL.StencilOp)zpass);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", Version = "2.0", EntryPoint = "glStencilOpSeparate")]
        public static 
        void StencilOpSeparate(OpenTK.Graphics.OpenGL.StencilFace face, OpenTK.Graphics.OpenGL.StencilOp sfail, OpenTK.Graphics.OpenGL.StencilOp dpfail, OpenTK.Graphics.OpenGL.StencilOp dppass)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glStencilOpSeparate((OpenTK.Graphics.OpenGL.StencilFace)face, (OpenTK.Graphics.OpenGL.StencilOp)sfail, (OpenTK.Graphics.OpenGL.StencilOp)dpfail, (OpenTK.Graphics.OpenGL.StencilOp)dppass);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glTexBuffer")]
        public static 
        void TexBuffer(OpenTK.Graphics.OpenGL.TextureBufferTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBuffer((OpenTK.Graphics.OpenGL.TextureBufferTarget)target, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.1]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_1", Version = "3.1", EntryPoint = "glTexBuffer")]
        public static 
        void TexBuffer(OpenTK.Graphics.OpenGL.TextureBufferTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, UInt32 buffer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBuffer((OpenTK.Graphics.OpenGL.TextureBufferTarget)target, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (UInt32)buffer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_buffer_range]
        /// Bind a range of a buffer's data store to a buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset of the start of the range of the buffer's data store to attach.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size of the range of the buffer's data store to attach.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_buffer_range", Version = "4.3", EntryPoint = "glTexBufferRange")]
        public static 
        void TexBufferRange(OpenTK.Graphics.OpenGL.TextureBufferTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBufferRange((OpenTK.Graphics.OpenGL.TextureBufferTarget)target, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_buffer_range]
        /// Bind a range of a buffer's data store to a buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// Specifies the offset of the start of the range of the buffer's data store to attach.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// Specifies the size of the range of the buffer's data store to attach.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_buffer_range", Version = "4.3", EntryPoint = "glTexBufferRange")]
        public static 
        void TexBufferRange(OpenTK.Graphics.OpenGL.TextureBufferTarget target, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, UInt32 buffer, IntPtr offset, IntPtr size)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexBufferRange((OpenTK.Graphics.OpenGL.TextureBufferTarget)target, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP1ui")]
        public static 
        void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP1ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP1ui")]
        public static 
        void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP1ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP1uiv")]
        public static 
        unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP1uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP1uiv")]
        public static 
        unsafe void TexCoordP1(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP1uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP2ui")]
        public static 
        void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP2ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP2ui")]
        public static 
        void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP2ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP2uiv")]
        public static 
        unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP2uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP2uiv")]
        public static 
        unsafe void TexCoordP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP2uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP3ui")]
        public static 
        void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP3ui")]
        public static 
        void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP3uiv")]
        public static 
        unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP3uiv")]
        public static 
        unsafe void TexCoordP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP4ui")]
        public static 
        void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP4ui")]
        public static 
        void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP4uiv")]
        public static 
        unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glTexCoordP4uiv")]
        public static 
        unsafe void TexCoordP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* coords)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)coords);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexCoordPointer((Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexCoordPointer")]
        public static 
        void TexCoordPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T3)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvf")]
        public static 
        void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvf((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
        public static 
        void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexEnvfv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvfv")]
        public static 
        unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvfv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnvi")]
        public static 
        void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnvi((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
        public static 
        void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexEnviv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexEnviv")]
        public static 
        unsafe void TexEnv(OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexEnviv((OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGend")]
        public static 
        void TexGend(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGend((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = @params)
                {
                    Delegates.glTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, ref Double @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* @params_ptr = &@params)
                {
                    Delegates.glTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGendv")]
        public static 
        unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGendv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGenf")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGenf((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGenfv")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexGenfv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGenfv")]
        public static 
        unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGenfv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGeni")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGeni((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGeniv")]
        public static 
        void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexGeniv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexGeniv")]
        public static 
        unsafe void TexGen(OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexGeniv((OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
            where T7 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage1D")]
        public static 
        void TexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T7)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, 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. If target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE, level must be 0.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image, or the number of layers in a texture array, in the case of the GL_TEXTURE_1D_ARRAY and GL_PROXY_TEXTURE_1D_ARRAY targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, 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. If target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE, level must be 0.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image, or the number of layers in a texture array, in the case of the GL_TEXTURE_1D_ARRAY and GL_PROXY_TEXTURE_1D_ARRAY targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, 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. If target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE, level must be 0.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image, or the number of layers in a texture array, in the case of the GL_TEXTURE_1D_ARRAY and GL_PROXY_TEXTURE_1D_ARRAY targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, 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. If target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE, level must be 0.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image, or the number of layers in a texture array, in the case of the GL_TEXTURE_1D_ARRAY and GL_PROXY_TEXTURE_1D_ARRAY targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, 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. If target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE, level must be 0.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image, or the number of layers in a texture array, in the case of the GL_TEXTURE_1D_ARRAY and GL_PROXY_TEXTURE_1D_ARRAY targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexImage2D")]
        public static 
        void TexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T8)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Establish the data storage, format, dimensions, and number of samples of a multisample texture's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation. target must be GL_TEXTURE_2D_MULTISAMPLE or GL_PROXY_TEXTURE_2D_MULTISAMPLE.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// The number of samples in the multisample texture's image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format to be used to store the multisample texture's image. internalformat must specify a color-renderable, depth-renderable, or stencil-renderable format.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the multisample texture's image, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the multisample texture's image, in texels.
        /// </para>
        /// </param>
        /// <param name="fixedsamplelocations">
        /// <para>
        /// Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glTexImage2DMultisample")]
        public static 
        void TexImage2DMultisample(OpenTK.Graphics.OpenGL.TextureTargetMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage2DMultisample((OpenTK.Graphics.OpenGL.TextureTargetMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
            where T9 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexImage3D")]
        public static 
        void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T9)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_texture_multisample]
        /// Establish the data storage, format, dimensions, and number of samples of a multisample texture's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation. target must be GL_TEXTURE_2D_MULTISAMPLE_ARRAY or GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// The number of samples in the multisample texture's image.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// The internal format to be used to store the multisample texture's image. internalformat must specify a color-renderable, depth-renderable, or stencil-renderable format.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// The width of the multisample texture's image, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// The height of the multisample texture's image, in texels.
        /// </para>
        /// </param>
        /// <param name="fixedsamplelocations">
        /// <para>
        /// Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_multisample", Version = "1.2", EntryPoint = "glTexImage3DMultisample")]
        public static 
        void TexImage3DMultisample(OpenTK.Graphics.OpenGL.TextureTargetMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexImage3DMultisample((OpenTK.Graphics.OpenGL.TextureTargetMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterf")]
        public static 
        void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterf((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single)param);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
        public static 
        void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* @params_ptr = @params)
                {
                    Delegates.glTexParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameterfv")]
        public static 
        unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterfv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteri")]
        public static 
        void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32 param)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameteri((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32)param);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = &@params)
                {
                    Delegates.glTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIiv")]
        public static 
        unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterIiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = @params)
                {
                    Delegates.glTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* @params_ptr = &@params)
                {
                    Delegates.glTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTexParameterIuiv")]
        public static 
        unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameterIuiv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
        public static 
        void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* @params_ptr = @params)
                {
                    Delegates.glTexParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, 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_DEPTH_STENCIL_TEXTURE_MODE, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_COMPARE_FUNC, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_LOD_BIAS, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_SWIZZLE_R, GL_TEXTURE_SWIZZLE_G, GL_TEXTURE_SWIZZLE_B, GL_TEXTURE_SWIZZLE_A, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, or GL_TEXTURE_WRAP_R.
        /// </para>
        /// </param>
        /// <param name="param">
        /// <para>
        /// Specifies the value of pname.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_1_0", Version = "1.0", EntryPoint = "glTexParameteriv")]
        public static 
        unsafe void TexParameter(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexParameteriv((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_texture_storage]
        /// Simultaneously specify storage for all levels of a one-dimensional texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be either GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
        /// </para>
        /// </param>
        /// <param name="levels">
        /// <para>
        /// Specify the number of texture levels.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the sized internal format to be used to store texture image data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture, in texels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTexStorage1D")]
        public static 
        void TexStorage1D(OpenTK.Graphics.OpenGL.TextureTarget1d target, Int32 levels, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 width)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexStorage1D((OpenTK.Graphics.OpenGL.TextureTarget1d)target, (Int32)levels, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (Int32)width);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_texture_storage]
        /// Simultaneously specify storage for all levels of a two-dimensional or one-dimensional array texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE, or GL_PROXY_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
        /// <param name="levels">
        /// <para>
        /// Specify the number of texture levels.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the sized internal format to be used to store texture image data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture, in texels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTexStorage2D")]
        public static 
        void TexStorage2D(OpenTK.Graphics.OpenGL.TextureTarget2d target, Int32 levels, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 width, Int32 height)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexStorage2D((OpenTK.Graphics.OpenGL.TextureTarget2d)target, (Int32)levels, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (Int32)width, (Int32)height);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_storage_multisample]
        /// Specify storage for a two-dimensional multisample texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be GL_TEXTURE_2D_MULTISAMPLE or GL_PROXY_TEXTURE_2D_MULTISAMPLE.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// Specify the number of samples in the texture.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the sized internal format to be used to store texture image data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="fixedsamplelocations">
        /// <para>
        /// Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTexStorage2DMultisample")]
        public static 
        void TexStorage2DMultisample(OpenTK.Graphics.OpenGL.TextureTargetMultisample2d target, Int32 samples, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 width, Int32 height, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexStorage2DMultisample((OpenTK.Graphics.OpenGL.TextureTargetMultisample2d)target, (Int32)samples, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (Int32)width, (Int32)height, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.2 and ARB_texture_storage]
        /// Simultaneously specify storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_ARRAY, or GL_PROXY_TEXTURE_CUBE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="levels">
        /// <para>
        /// Specify the number of texture levels.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the sized internal format to be used to store texture image data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture, in texels.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTexStorage3D")]
        public static 
        void TexStorage3D(OpenTK.Graphics.OpenGL.TextureTarget3d target, Int32 levels, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexStorage3D((OpenTK.Graphics.OpenGL.TextureTarget3d)target, (Int32)levels, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_storage_multisample]
        /// Specify storage for a two-dimensional multisample array texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the operation. target must be GL_TEXTURE_2D_MULTISAMPLE_ARRAY or GL_PROXY_TEXTURE_2D_MULTISAMPLE_MULTISAMPLE.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// Specify the number of samples in the texture.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the sized internal format to be used to store texture image data.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture, in texels.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture, in layers.
        /// </para>
        /// </param>
        /// <param name="fixedsamplelocations">
        /// <para>
        /// Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not depend on the internal format or size of the image.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTexStorage3DMultisample")]
        public static 
        void TexStorage3DMultisample(OpenTK.Graphics.OpenGL.TextureTargetMultisample3d target, Int32 samples, OpenTK.Graphics.OpenGL.SizedInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexStorage3DMultisample((OpenTK.Graphics.OpenGL.TextureTargetMultisample3d)target, (Int32)samples, (OpenTK.Graphics.OpenGL.SizedInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedsamplelocations);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
            where T6 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage1D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage1D")]
        public static 
        void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T6)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
            where T8 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage2D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glTexSubImage2D")]
        public static 
        void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T8)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
            where T10 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
            try
            {
                Delegates.glTexSubImage3D((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "VERSION_1_2", Version = "1.2", EntryPoint = "glTexSubImage3D")]
        public static 
        void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                pixels = (T10)pixels_ptr.Target;
            }
            finally
            {
                pixels_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_view]
        /// Initialize a texture as a data alias of another texture's data store
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to be initialized as a view.
        /// </para>
        /// </param>
        /// <param name="target">
        /// <para>
        /// Specifies the target to be used for the newly initialized texture.
        /// </para>
        /// </param>
        /// <param name="origtexture">
        /// <para>
        /// Specifies the name of a texture object of which to make a view.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format for the newly created view.
        /// </para>
        /// </param>
        /// <param name="minlevel">
        /// <para>
        /// Specifies lowest level of detail of the view.
        /// </para>
        /// </param>
        /// <param name="numlevels">
        /// <para>
        /// Specifies the number of levels of detail to include in the view.
        /// </para>
        /// </param>
        /// <param name="minlayer">
        /// <para>
        /// Specifies the index of the first layer to include in the view.
        /// </para>
        /// </param>
        /// <param name="numlayers">
        /// <para>
        /// Specifies the number of layers to include in the view.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_texture_view", Version = "4.3", EntryPoint = "glTextureView")]
        public static 
        void TextureView(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 origtexture, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 minlevel, Int32 numlevels, Int32 minlayer, Int32 numlayers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTextureView((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)origtexture, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (UInt32)minlevel, (UInt32)numlevels, (UInt32)minlayer, (UInt32)numlayers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_texture_view]
        /// Initialize a texture as a data alias of another texture's data store
        /// </summary>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to be initialized as a view.
        /// </para>
        /// </param>
        /// <param name="target">
        /// <para>
        /// Specifies the target to be used for the newly initialized texture.
        /// </para>
        /// </param>
        /// <param name="origtexture">
        /// <para>
        /// Specifies the name of a texture object of which to make a view.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format for the newly created view.
        /// </para>
        /// </param>
        /// <param name="minlevel">
        /// <para>
        /// Specifies lowest level of detail of the view.
        /// </para>
        /// </param>
        /// <param name="numlevels">
        /// <para>
        /// Specifies the number of levels of detail to include in the view.
        /// </para>
        /// </param>
        /// <param name="minlayer">
        /// <para>
        /// Specifies the index of the first layer to include in the view.
        /// </para>
        /// </param>
        /// <param name="numlayers">
        /// <para>
        /// Specifies the number of layers to include in the view.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_texture_view", Version = "4.3", EntryPoint = "glTextureView")]
        public static 
        void TextureView(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 origtexture, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, UInt32 minlevel, UInt32 numlevels, UInt32 minlayer, UInt32 numlayers)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTextureView((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)origtexture, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (UInt32)minlevel, (UInt32)numlevels, (UInt32)minlayer, (UInt32)numlayers);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
        public static 
        void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTransformFeedbackVaryings((UInt32)program, (Int32)count, (String[])varyings, (OpenTK.Graphics.OpenGL.TransformFeedbackMode)bufferMode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v3.0]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glTransformFeedbackVaryings")]
        public static 
        void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.TransformFeedbackMode bufferMode)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glTransformFeedbackVaryings((UInt32)program, (Int32)count, (String[])varyings, (OpenTK.Graphics.OpenGL.TransformFeedbackMode)bufferMode);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform1d")]
        public static 
        void Uniform1(Int32 location, Double x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1d((Int32)location, (Double)x);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform1dv")]
        public static 
        void Uniform1(Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniform1dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform1dv")]
        public static 
        void Uniform1(Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniform1dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform1dv")]
        public static 
        unsafe void Uniform1(Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform1dv((Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform2d")]
        public static 
        void Uniform2(Int32 location, Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2d((Int32)location, (Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform2dv")]
        public static 
        void Uniform2(Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniform2dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform2dv")]
        public static 
        void Uniform2(Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniform2dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform2dv")]
        public static 
        unsafe void Uniform2(Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform2dv((Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform3d")]
        public static 
        void Uniform3(Int32 location, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3d((Int32)location, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform3dv")]
        public static 
        void Uniform3(Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniform3dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform3dv")]
        public static 
        void Uniform3(Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniform3dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform3dv")]
        public static 
        unsafe void Uniform3(Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform3dv((Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform4d")]
        public static 
        void Uniform4(Int32 location, Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4d((Int32)location, (Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform4dv")]
        public static 
        void Uniform4(Int32 location, Int32 count, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniform4dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform4dv")]
        public static 
        void Uniform4(Int32 location, Int32 count, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniform4dv((Int32)location, (Int32)count, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]
        /// 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 = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniform4dv")]
        public static 
        unsafe void Uniform4(Int32 location, Int32 count, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniform4dv((Int32)location, (Int32)count, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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
        }

        
        /// <summary>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v3.0]
        /// 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 = "VERSION_3_0", 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>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Assign a binding point to an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object containing the active uniform block whose binding to assign.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// The index of the active uniform block within program whose binding to assign.
        /// </para>
        /// </param>
        /// <param name="uniformBlockBinding">
        /// <para>
        /// Specifies the binding point to which to bind the uniform block with index uniformBlockIndex within program.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_uniform_buffer_object", 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
        }

        
        /// <summary>[requires: v2.0 and ARB_uniform_buffer_object]
        /// Assign a binding point to an active uniform block
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of a program object containing the active uniform block whose binding to assign.
        /// </para>
        /// </param>
        /// <param name="uniformBlockIndex">
        /// <para>
        /// The index of the active uniform block within program whose binding to assign.
        /// </para>
        /// </param>
        /// <param name="uniformBlockBinding">
        /// <para>
        /// Specifies the binding point to which to bind the uniform block with index uniformBlockIndex within program.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_uniform_buffer_object", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2dv")]
        public static 
        void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2dv")]
        public static 
        void UniformMatrix2(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2dv")]
        public static 
        unsafe void UniformMatrix2(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x3dv")]
        public static 
        void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix2x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x3dv")]
        public static 
        void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x3dv")]
        public static 
        unsafe void UniformMatrix2x3(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x4dv")]
        public static 
        void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix2x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x4dv")]
        public static 
        void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix2x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix2x4dv")]
        public static 
        unsafe void UniformMatrix2x4(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix2x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3dv")]
        public static 
        void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3dv")]
        public static 
        void UniformMatrix3(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3dv")]
        public static 
        unsafe void UniformMatrix3(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x2dv")]
        public static 
        void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix3x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x2dv")]
        public static 
        void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x2dv")]
        public static 
        unsafe void UniformMatrix3x2(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x4dv")]
        public static 
        void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix3x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x4dv")]
        public static 
        void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix3x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix3x4dv")]
        public static 
        unsafe void UniformMatrix3x4(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix3x4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4dv")]
        public static 
        void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4dv")]
        public static 
        void UniformMatrix4(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4dv")]
        public static 
        unsafe void UniformMatrix4(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x2dv")]
        public static 
        void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix4x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x2dv")]
        public static 
        void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x2dv")]
        public static 
        unsafe void UniformMatrix4x2(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4x2dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x3dv")]
        public static 
        void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double[] value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = value)
                {
                    Delegates.glUniformMatrix4x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x3dv")]
        public static 
        void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, ref Double value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* value_ptr = &value)
                {
                    Delegates.glUniformMatrix4x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_gpu_shader_fp64]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_gpu_shader_fp64", Version = "1.2", EntryPoint = "glUniformMatrix4x3dv")]
        public static 
        unsafe void UniformMatrix4x3(Int32 location, Int32 count, bool transpose, Double* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformMatrix4x3dv((Int32)location, (Int32)count, (bool)transpose, (Double*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        /// <summary>[requires: v2.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_1", 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
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, Int32[] indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* indices_ptr = indices)
                {
                    Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, ref Int32 indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Int32* indices_ptr = &indices)
                {
                    Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, Int32* indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, UInt32[] indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* indices_ptr = indices)
                {
                    Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, ref UInt32 indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (UInt32* indices_ptr = &indices)
                {
                    Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_shader_subroutine]
        /// Load active subroutine uniforms
        /// </summary>
        /// <param name="shadertype">
        /// <para>
        /// Specifies the shader stage from which to query for subroutine uniform index. shadertype must be one of GL_VERTEX_SHADER, GL_TESS_CONTROL_SHADER, GL_TESS_EVALUATION_SHADER, GL_GEOMETRY_SHADER or GL_FRAGMENT_SHADER.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of uniform indices stored in indices.
        /// </para>
        /// </param>
        /// <param name="indices">
        /// <para>
        /// Specifies the address of an array holding the indices to load into the shader subroutine variables.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_shader_subroutine", Version = "1.2", EntryPoint = "glUniformSubroutinesuiv")]
        public static 
        unsafe void UniformSubroutines(OpenTK.Graphics.OpenGL.ShaderType shadertype, Int32 count, UInt32* indices)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUniformSubroutinesuiv((OpenTK.Graphics.OpenGL.ShaderType)shadertype, (Int32)count, (UInt32*)indices);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.5]</summary>
        [AutoGenerated(Category = "VERSION_1_5", Version = "1.5", EntryPoint = "glUnmapBuffer")]
        public static 
        bool UnmapBuffer(OpenTK.Graphics.OpenGL.BufferTarget target)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glUnmapBuffer((OpenTK.Graphics.OpenGL.BufferTarget)target);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v4.1 and ARB_separate_shader_objects]
        /// Bind stages of a program object to a program pipeline
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the program pipeline object to which to bind stages from program.
        /// </para>
        /// </param>
        /// <param name="stages">
        /// <para>
        /// Specifies a set of program stages to bind to the program pipeline object.
        /// </para>
        /// </param>
        /// <param name="program">
        /// <para>
        /// Specifies the program object containing the shader executables to use in pipeline.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glUseProgramStages")]
        public static 
        void UseProgramStages(Int32 pipeline, OpenTK.Graphics.OpenGL.ProgramStageMask stages, Int32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUseProgramStages((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramStageMask)stages, (UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Bind stages of a program object to a program pipeline
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the program pipeline object to which to bind stages from program.
        /// </para>
        /// </param>
        /// <param name="stages">
        /// <para>
        /// Specifies a set of program stages to bind to the program pipeline object.
        /// </para>
        /// </param>
        /// <param name="program">
        /// <para>
        /// Specifies the program object containing the shader executables to use in pipeline.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glUseProgramStages")]
        public static 
        void UseProgramStages(UInt32 pipeline, OpenTK.Graphics.OpenGL.ProgramStageMask stages, UInt32 program)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glUseProgramStages((UInt32)pipeline, (OpenTK.Graphics.OpenGL.ProgramStageMask)stages, (UInt32)program);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// Validates a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program object to be validated.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0]
        /// 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 = "VERSION_2_0", 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>[requires: v4.1 and ARB_separate_shader_objects]
        /// Validate a program pipeline object against current GL state
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object to validate.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glValidateProgramPipeline")]
        public static 
        void ValidateProgramPipeline(Int32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glValidateProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_separate_shader_objects]
        /// Validate a program pipeline object against current GL state
        /// </summary>
        /// <param name="pipeline">
        /// <para>
        /// Specifies the name of a program pipeline object to validate.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_separate_shader_objects", Version = "4.1", EntryPoint = "glValidateProgramPipeline")]
        public static 
        void ValidateProgramPipeline(UInt32 pipeline)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glValidateProgramPipeline((UInt32)pipeline);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v1.0][deprecated: v3.1]
        /// 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 = "VERSION_1_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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
        }

        
        /// <summary>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        /// <summary>[requires: v2.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", 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
        }

        
        /// <summary>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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
        }

        
        /// <summary>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v2.0][deprecated: v3.1]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "VERSION_2_0", 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>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Associate a vertex attribute and a vertex buffer binding
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The index of the attribute to associate with a vertex buffer binding.
        /// </para>
        /// </param>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the vertex buffer binding with which to associate the generic vertex attribute.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribBinding")]
        public static 
        void VertexAttribBinding(Int32 attribindex, Int32 bindingindex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribBinding((UInt32)attribindex, (UInt32)bindingindex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Associate a vertex attribute and a vertex buffer binding
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The index of the attribute to associate with a vertex buffer binding.
        /// </para>
        /// </param>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the vertex buffer binding with which to associate the generic vertex attribute.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribBinding")]
        public static 
        void VertexAttribBinding(UInt32 attribindex, UInt32 bindingindex)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribBinding((UInt32)attribindex, (UInt32)bindingindex);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// Modify the rate at which generic vertex attributes advance during instanced rendering
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the index of the generic vertex attribute.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// Specify the number of instances that will pass between updates of the generic attribute at slot index.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_3_3", Version = "1.1", EntryPoint = "glVertexAttribDivisor")]
        public static 
        void VertexAttribDivisor(Int32 index, Int32 divisor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribDivisor((UInt32)index, (UInt32)divisor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1]
        /// Modify the rate at which generic vertex attributes advance during instanced rendering
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the index of the generic vertex attribute.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// Specify the number of instances that will pass between updates of the generic attribute at slot index.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_3", Version = "1.1", EntryPoint = "glVertexAttribDivisor")]
        public static 
        void VertexAttribDivisor(UInt32 index, UInt32 divisor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribDivisor((UInt32)index, (UInt32)divisor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Specify the organization of vertex arrays
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The generic vertex attribute array being described.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The number of values per vertex that are stored in the array.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data stored in the array.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        /// <param name="relativeoffset">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribFormat")]
        public static 
        void VertexAttribFormat(Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribType type, bool normalized, Int32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribType)type, (bool)normalized, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Specify the organization of vertex arrays
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The generic vertex attribute array being described.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The number of values per vertex that are stored in the array.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data stored in the array.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        /// <param name="relativeoffset">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribFormat")]
        public static 
        void VertexAttribFormat(UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribType type, bool normalized, UInt32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribType)type, (bool)normalized, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v3.0][deprecated: v3.1]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", 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
        }

        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribIFormat")]
        public static 
        void VertexAttribIFormat(Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribIFormat")]
        public static 
        void VertexAttribIFormat(UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, UInt32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T4)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribIPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.0]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_3_0", Version = "3.0", EntryPoint = "glVertexAttribIPointer")]
        public static 
        void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribIntegerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribIntegerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T4)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1d")]
        public static 
        void VertexAttribL1(Int32 index, Double x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL1d((UInt32)index, (Double)x);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1d")]
        public static 
        void VertexAttribL1(UInt32 index, Double x)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL1d((UInt32)index, (Double)x);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
        public static 
        unsafe void VertexAttribL1(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL1dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dv")]
        public static 
        unsafe void VertexAttribL1(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL1dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2d")]
        public static 
        void VertexAttribL2(Int32 index, Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL2d((UInt32)index, (Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2d")]
        public static 
        void VertexAttribL2(UInt32 index, Double x, Double y)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL2d((UInt32)index, (Double)x, (Double)y);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        void VertexAttribL2(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        void VertexAttribL2(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        unsafe void VertexAttribL2(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        void VertexAttribL2(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        void VertexAttribL2(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dv")]
        public static 
        unsafe void VertexAttribL2(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL2dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3d")]
        public static 
        void VertexAttribL3(Int32 index, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL3d((UInt32)index, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3d")]
        public static 
        void VertexAttribL3(UInt32 index, Double x, Double y, Double z)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL3d((UInt32)index, (Double)x, (Double)y, (Double)z);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        void VertexAttribL3(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        void VertexAttribL3(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        unsafe void VertexAttribL3(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        void VertexAttribL3(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        void VertexAttribL3(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dv")]
        public static 
        unsafe void VertexAttribL3(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL3dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4d")]
        public static 
        void VertexAttribL4(Int32 index, Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL4d((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4d")]
        public static 
        void VertexAttribL4(UInt32 index, Double x, Double y, Double z, Double w)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL4d((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        void VertexAttribL4(Int32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        void VertexAttribL4(Int32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        unsafe void VertexAttribL4(Int32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        void VertexAttribL4(UInt32 index, Double[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = v)
                {
                    Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        void VertexAttribL4(UInt32 index, ref Double v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Double* v_ptr = &v)
                {
                    Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dv")]
        public static 
        unsafe void VertexAttribL4(UInt32 index, Double* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribL4dv((UInt32)index, (Double*)v);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribLFormat")]
        public static 
        void VertexAttribLFormat(Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribLFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexAttribLFormat")]
        public static 
        void VertexAttribLFormat(UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, UInt32 relativeoffset)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribLFormat((UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (UInt32)relativeoffset);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T4)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v4.1 and ARB_vertex_attrib_64bit]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointer")]
        public static 
        void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribDoubleType type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
            where T4 : struct
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
            try
            {
                Delegates.glVertexAttribLPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribDoubleType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T4)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP1ui")]
        public static 
        void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP1ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP1ui")]
        public static 
        void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP1ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
        public static 
        unsafe void VertexAttribP1(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP1uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP1uiv")]
        public static 
        unsafe void VertexAttribP1(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP1uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP2ui")]
        public static 
        void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP2ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP2ui")]
        public static 
        void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP2ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
        public static 
        unsafe void VertexAttribP2(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP2uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP2uiv")]
        public static 
        unsafe void VertexAttribP2(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP2uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP3ui")]
        public static 
        void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP3ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP3ui")]
        public static 
        void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP3ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
        public static 
        unsafe void VertexAttribP3(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP3uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP3uiv")]
        public static 
        unsafe void VertexAttribP3(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP3uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP4ui")]
        public static 
        void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP4ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP4ui")]
        public static 
        void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP4ui((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
        public static 
        unsafe void VertexAttribP4(Int32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP4uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v3.3 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "3.3", EntryPoint = "glVertexAttribP4uiv")]
        public static 
        unsafe void VertexAttribP4(UInt32 index, OpenTK.Graphics.OpenGL.PackedPointerType type, bool normalized, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribP4uiv((UInt32)index, (OpenTK.Graphics.OpenGL.PackedPointerType)type, (bool)normalized, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T5)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexAttribPointer((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v2.0]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "VERSION_2_0", Version = "2.0", EntryPoint = "glVertexAttribPointer")]
        public static 
        void VertexAttribPointer<T5>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.VertexAttribPointerType type, bool normalized, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribPointerType)type, (bool)normalized, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T5)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Modify the rate at which generic vertex attributes advance
        /// </summary>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the binding whose divisor to modify.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// The new value for the instance step rate to apply.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexBindingDivisor")]
        public static 
        void VertexBindingDivisor(Int32 bindingindex, Int32 divisor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexBindingDivisor((UInt32)bindingindex, (UInt32)divisor);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.3 and ARB_vertex_attrib_binding]
        /// Modify the rate at which generic vertex attributes advance
        /// </summary>
        /// <param name="bindingindex">
        /// <para>
        /// The index of the binding whose divisor to modify.
        /// </para>
        /// </param>
        /// <param name="divisor">
        /// <para>
        /// The new value for the instance step rate to apply.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexBindingDivisor")]
        public static 
        void VertexBindingDivisor(UInt32 bindingindex, UInt32 divisor)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexBindingDivisor((UInt32)bindingindex, (UInt32)divisor);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP2ui")]
        public static 
        void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP2ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP2ui")]
        public static 
        void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP2ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP2uiv")]
        public static 
        unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP2uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP2uiv")]
        public static 
        unsafe void VertexP2(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP2uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP3ui")]
        public static 
        void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP3ui")]
        public static 
        void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP3ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP3uiv")]
        public static 
        unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP3uiv")]
        public static 
        unsafe void VertexP3(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP3uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP4ui")]
        public static 
        void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP4ui")]
        public static 
        void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32 value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP4ui((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP4uiv")]
        public static 
        unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, Int32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        /// <summary>[requires: v1.2 and ARB_vertex_type_2_10_10_10_rev]</summary>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_vertex_type_2_10_10_10_rev", Version = "1.2", EntryPoint = "glVertexP4uiv")]
        public static 
        unsafe void VertexP4(OpenTK.Graphics.OpenGL.PackedPointerType type, UInt32* value)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexP4uiv((OpenTK.Graphics.OpenGL.PackedPointerType)type, (UInt32*)value);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, IntPtr pointer)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glVertexPointer((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.1][deprecated: v3.1]
        /// 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 = "VERSION_1_1", Version = "1.1", EntryPoint = "glVertexPointer")]
        public static 
        void VertexPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                pointer = (T3)pointer_ptr.Target;
            }
            finally
            {
                pointer_ptr.Free();
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.0]
        /// 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 = "VERSION_1_0", 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
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        void ViewportArray(Int32 first, Int32 count, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        void ViewportArray(Int32 first, Int32 count, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        unsafe void ViewportArray(Int32 first, Int32 count, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        void ViewportArray(UInt32 first, Int32 count, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        void ViewportArray(UInt32 first, Int32 count, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set multiple viewports
        /// </summary>
        /// <param name="first">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specify the number of viewports to set.
        /// </para>
        /// </param>
        /// <param name="v">
        /// <para>
        /// Specify the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportArrayv")]
        public static 
        unsafe void ViewportArray(UInt32 first, Int32 count, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportArrayv((UInt32)first, (Int32)count, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedf")]
        public static 
        void ViewportIndexed(Int32 index, Single x, Single y, Single w, Single h)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportIndexedf((UInt32)index, (Single)x, (Single)y, (Single)w, (Single)h);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedf")]
        public static 
        void ViewportIndexed(UInt32 index, Single x, Single y, Single w, Single h)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportIndexedf((UInt32)index, (Single)x, (Single)y, (Single)w, (Single)h);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        void ViewportIndexed(Int32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glViewportIndexedfv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        void ViewportIndexed(Int32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glViewportIndexedfv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        unsafe void ViewportIndexed(Int32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportIndexedfv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        void ViewportIndexed(UInt32 index, Single[] v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = v)
                {
                    Delegates.glViewportIndexedfv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        void ViewportIndexed(UInt32 index, ref Single v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            unsafe
            {
                fixed (Single* v_ptr = &v)
                {
                    Delegates.glViewportIndexedfv((UInt32)index, (Single*)v_ptr);
                }
            }
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v4.1 and ARB_viewport_array]
        /// Set a specified viewport
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specify the first viewport to set.
        /// </para>
        /// </param>
        /// <param name="x">
        /// <para>
        /// For glViewportIndexedf, specifies the lower left corner of the viewport rectangle, in pixels. The initial value is (0,0).
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// For glViewportIndexedf, specifies 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>
        /// <param name="v">
        /// <para>
        /// For glViewportIndexedfv, specifies the address of an array containing the viewport parameters.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_viewport_array", Version = "4.1", EntryPoint = "glViewportIndexedfv")]
        public static 
        unsafe void ViewportIndexed(UInt32 index, Single* v)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            Delegates.glViewportIndexedfv((UInt32)index, (Single*)v);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Instruct the GL server to block until the specified sync object becomes signaled
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies the sync object whose status to wait on.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// A bitfield controlling the command flushing behavior. flags may be zero.
        /// </para>
        /// </param>
        /// <param name="timeout">
        /// <para>
        /// Specifies the timeout that the server should wait before continuing. timeout must be GL_TIMEOUT_IGNORED.
        /// </para>
        /// </param>
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glWaitSync")]
        public static 
        OpenTK.Graphics.OpenGL.WaitSyncStatus WaitSync(IntPtr sync, OpenTK.Graphics.OpenGL.WaitSyncFlags flags, Int64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glWaitSync((IntPtr)sync, (OpenTK.Graphics.OpenGL.WaitSyncFlags)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.2 and ARB_sync]
        /// Instruct the GL server to block until the specified sync object becomes signaled
        /// </summary>
        /// <param name="sync">
        /// <para>
        /// Specifies the sync object whose status to wait on.
        /// </para>
        /// </param>
        /// <param name="flags">
        /// <para>
        /// A bitfield controlling the command flushing behavior. flags may be zero.
        /// </para>
        /// </param>
        /// <param name="timeout">
        /// <para>
        /// Specifies the timeout that the server should wait before continuing. timeout must be GL_TIMEOUT_IGNORED.
        /// </para>
        /// </param>
        [System.CLSCompliant(false)]
        [AutoGenerated(Category = "ARB_sync", Version = "1.2", EntryPoint = "glWaitSync")]
        public static 
        OpenTK.Graphics.OpenGL.WaitSyncStatus WaitSync(IntPtr sync, OpenTK.Graphics.OpenGL.WaitSyncFlags flags, UInt64 timeout)
        {
            #if DEBUG
            using (new ErrorHelper(GraphicsContext.CurrentContext))
            {
            #endif
            return Delegates.glWaitSync((IntPtr)sync, (OpenTK.Graphics.OpenGL.WaitSyncFlags)flags, (UInt64)timeout);
            #if DEBUG
            }
            #endif
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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
        }

        
        /// <summary>[requires: v1.4][deprecated: v3.1]
        /// 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 = "VERSION_1_4", 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
        }

        public static partial class Ext
        {
            /// <summary>[requires: EXT_separate_shader_objects]</summary>
            [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "1.2", EntryPoint = "glActiveProgramEXT")]
            public static 
            void ActiveProgram(Int32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveProgramEXT((UInt32)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_separate_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "1.2", EntryPoint = "glActiveProgramEXT")]
            public static 
            void ActiveProgram(UInt32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveProgramEXT((UInt32)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_stencil_two_side]</summary>
            [AutoGenerated(Category = "EXT_stencil_two_side", Version = "1.3", EntryPoint = "glActiveStencilFaceEXT")]
            public static 
            void ActiveStencilFace(OpenTK.Graphics.OpenGL.ExtStencilTwoSide face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glActiveStencilFaceEXT((OpenTK.Graphics.OpenGL.ExtStencilTwoSide)face);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_light_texture]</summary>
            [AutoGenerated(Category = "EXT_light_texture", Version = "1.1", EntryPoint = "glApplyTextureEXT")]
            public static 
            void ApplyTexture(OpenTK.Graphics.OpenGL.ExtLightTexture mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glApplyTextureEXT((OpenTK.Graphics.OpenGL.ExtLightTexture)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, Int32[] textures, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, ref Int32 textures, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            unsafe bool AreTexturesResident(Int32 n, Int32* textures, [OutAttribute] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, UInt32[] textures, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            bool AreTexturesResident(Int32 n, ref UInt32 textures, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glAreTexturesResidentEXT")]
            public static 
            unsafe bool AreTexturesResident(Int32 n, UInt32* textures, [OutAttribute] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreTexturesResidentEXT((Int32)n, (UInt32*)textures, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", 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
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Start transform feedback operation
        /// </summary>
        /// <param name="primitiveMode">
        /// <para>
        /// Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBeginTransformFeedbackEXT")]
            public static 
            void BeginTransformFeedback(OpenTK.Graphics.OpenGL.ExtTransformFeedback primitiveMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginTransformFeedbackEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)primitiveMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBeginVertexShaderEXT")]
            public static 
            void BeginVertexShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginVertexShaderEXT();
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferBaseEXT")]
            public static 
            void BindBufferBase(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, Int32 index, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferBaseEXT")]
            public static 
            void BindBufferBase(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, UInt32 index, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_transform_feedback]</summary>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferOffsetEXT")]
            public static 
            void BindBufferOffset(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferOffsetEXT")]
            public static 
            void BindBufferOffset(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferRangeEXT")]
            public static 
            void BindBufferRange(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glBindBufferRangeEXT")]
            public static 
            void BindBufferRange(OpenTK.Graphics.OpenGL.ExtTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeEXT((OpenTK.Graphics.OpenGL.ExtTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// Bind a user-defined varying out variable to a fragment shader color number
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_gpu_shader4", 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
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// Bind a user-defined varying out variable to a fragment shader color number
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to modify
        /// </para>
        /// </param>
        /// <param name="colorNumber">
        /// <para>
        /// The color number to bind the user-defined varying out variable to
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to modify
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_shader4", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Bind a framebuffer to a framebuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target of the binding operation.
        /// </para>
        /// </param>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies the name of the framebuffer object to bind.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glBindFramebufferEXT")]
            public static 
            void BindFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, Int32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFramebufferEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Bind a framebuffer to a framebuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target of the binding operation.
        /// </para>
        /// </param>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies the name of the framebuffer object to bind.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glBindFramebufferEXT")]
            public static 
            void BindFramebuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, UInt32 framebuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindFramebufferEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (UInt32)framebuffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_shader_image_load_store]
        /// Bind a level of a texture to an image unit
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the image unit to which to bind the texture
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of the texture to bind to the image unit.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level of the texture that is to be bound.
        /// </para>
        /// </param>
        /// <param name="layered">
        /// <para>
        /// Specifies whether a layered texture binding is to be established.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// If layered is GL_FALSE, specifies the layer of texture to be bound to the image unit. Ignored otherwise.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies a token indicating the type of access that will be performed on the image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_shader_image_load_store", Version = "4.1", EntryPoint = "glBindImageTextureEXT")]
            public static 
            void BindImageTexture(Int32 index, Int32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.ExtShaderImageLoadStore access, Int32 format)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindImageTextureEXT((UInt32)index, (UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.ExtShaderImageLoadStore)access, (Int32)format);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_shader_image_load_store]
        /// Bind a level of a texture to an image unit
        /// </summary>
        /// <param name="unit">
        /// <para>
        /// Specifies the index of the image unit to which to bind the texture
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of the texture to bind to the image unit.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the level of the texture that is to be bound.
        /// </para>
        /// </param>
        /// <param name="layered">
        /// <para>
        /// Specifies whether a layered texture binding is to be established.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// If layered is GL_FALSE, specifies the layer of texture to be bound to the image unit. Ignored otherwise.
        /// </para>
        /// </param>
        /// <param name="access">
        /// <para>
        /// Specifies a token indicating the type of access that will be performed on the image.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_shader_image_load_store", Version = "4.1", EntryPoint = "glBindImageTextureEXT")]
            public static 
            void BindImageTexture(UInt32 index, UInt32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.ExtShaderImageLoadStore access, Int32 format)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindImageTextureEXT((UInt32)index, (UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.ExtShaderImageLoadStore)access, (Int32)format);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBindLightParameterEXT")]
            public static 
            Int32 BindLightParameter(OpenTK.Graphics.OpenGL.LightName light, OpenTK.Graphics.OpenGL.LightParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindLightParameterEXT((OpenTK.Graphics.OpenGL.LightName)light, (OpenTK.Graphics.OpenGL.LightParameter)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBindMaterialParameterEXT")]
            public static 
            Int32 BindMaterialParameter(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindMaterialParameterEXT((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glBindMultiTextureEXT")]
            public static 
            void BindMultiTexture(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindMultiTextureEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glBindMultiTextureEXT")]
            public static 
            void BindMultiTexture(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindMultiTextureEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBindParameterEXT")]
            public static 
            Int32 BindParameter(OpenTK.Graphics.OpenGL.ExtVertexShader value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindParameterEXT((OpenTK.Graphics.OpenGL.ExtVertexShader)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Bind a renderbuffer to a renderbuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the renderbuffer target of the binding operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of the renderbuffer object to bind.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glBindRenderbufferEXT")]
            public static 
            void BindRenderbuffer(OpenTK.Graphics.OpenGL.RenderbufferTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindRenderbufferEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Bind a renderbuffer to a renderbuffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the renderbuffer target of the binding operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of the renderbuffer object to bind.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glBindRenderbufferEXT")]
            public static 
            void BindRenderbuffer(OpenTK.Graphics.OpenGL.RenderbufferTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindRenderbufferEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBindTexGenParameterEXT")]
            public static 
            Int32 BindTexGenParameter(OpenTK.Graphics.OpenGL.TextureUnit unit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindTexGenParameterEXT((OpenTK.Graphics.OpenGL.TextureUnit)unit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_texture_object", Version = "1.0", EntryPoint = "glBindTextureEXT")]
            public static 
            void BindTexture(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTextureEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// Bind a named texture to a texturing target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture is bound. Must be one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the name of a texture.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_object", Version = "1.0", EntryPoint = "glBindTextureEXT")]
            public static 
            void BindTexture(OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTextureEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glBindTextureUnitParameterEXT")]
            public static 
            Int32 BindTextureUnitParameter(OpenTK.Graphics.OpenGL.TextureUnit unit, OpenTK.Graphics.OpenGL.ExtVertexShader value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glBindTextureUnitParameterEXT((OpenTK.Graphics.OpenGL.TextureUnit)unit, (OpenTK.Graphics.OpenGL.ExtVertexShader)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBinormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glBinormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glBinormalPointerEXT")]
            public static 
            void BinormalPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_blend_color]
        /// Set the blend color
        /// </summary>
        /// <param name="red">
        /// <para>
        /// specify the components of GL_BLEND_COLOR
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_blend_color", 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>[requires: EXT_blend_minmax]
        /// Specify the equation used for both the RGB blend equation and the Alpha blend equation
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationi, specifies the index of the draw buffer for which to set the blend equation.
        /// </para>
        /// </param>
        /// <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 = "EXT_blend_minmax", Version = "1.0", EntryPoint = "glBlendEquationEXT")]
            public static 
            void BlendEquation(OpenTK.Graphics.OpenGL.ExtBlendMinmax mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationEXT((OpenTK.Graphics.OpenGL.ExtBlendMinmax)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_blend_equation_separate]
        /// Set the RGB blend equation and the alpha blend equation separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.
        /// </para>
        /// </param>
        /// <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 = "EXT_blend_equation_separate", Version = "1.2", EntryPoint = "glBlendEquationSeparateEXT")]
            public static 
            void BlendEquationSeparate(OpenTK.Graphics.OpenGL.ExtBlendEquationSeparate modeRGB, OpenTK.Graphics.OpenGL.ExtBlendEquationSeparate modeAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendEquationSeparateEXT((OpenTK.Graphics.OpenGL.ExtBlendEquationSeparate)modeRGB, (OpenTK.Graphics.OpenGL.ExtBlendEquationSeparate)modeAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_blend_func_separate]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_blend_func_separate", Version = "1.0", EntryPoint = "glBlendFuncSeparateEXT")]
            public static 
            void BlendFuncSeparate(OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate sfactorRGB, OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate dfactorRGB, OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate sfactorAlpha, OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate dfactorAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateEXT((OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate)sfactorRGB, (OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate)dfactorRGB, (OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate)sfactorAlpha, (OpenTK.Graphics.OpenGL.ExtBlendFuncSeparate)dfactorAlpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_blit]
        /// Copy a block of pixels from the read framebuffer to the draw framebuffer
        /// </summary>
        /// <param name="srcX0">
        /// <para>
        /// Specify the bounds of the source rectangle within the read buffer of the read framebuffer.
        /// </para>
        /// </param>
        /// <param name="dstX0">
        /// <para>
        /// Specify the bounds of the destination rectangle within the write buffer of the write framebuffer.
        /// </para>
        /// </param>
        /// <param name="mask">
        /// <para>
        /// The bitwise OR of the flags indicating which buffers are to be copied. The allowed flags are GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT and GL_STENCIL_BUFFER_BIT.
        /// </para>
        /// </param>
        /// <param name="filter">
        /// <para>
        /// Specifies the interpolation to be applied if the image is stretched. Must be GL_NEAREST or GL_LINEAR.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_blit", 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, OpenTK.Graphics.OpenGL.ClearBufferMask mask, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ClearBufferMask)mask, (OpenTK.Graphics.OpenGL.ExtFramebufferBlit)filter);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Check the completeness status of a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the framebuffer completeness check.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glCheckFramebufferStatusEXT")]
            public static 
            OpenTK.Graphics.OpenGL.FramebufferErrorCode CheckFramebufferStatus(OpenTK.Graphics.OpenGL.FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckFramebufferStatusEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCheckNamedFramebufferStatusEXT")]
            public static 
            OpenTK.Graphics.OpenGL.ExtDirectStateAccess CheckNamedFramebufferStatus(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckNamedFramebufferStatusEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCheckNamedFramebufferStatusEXT")]
            public static 
            OpenTK.Graphics.OpenGL.ExtDirectStateAccess CheckNamedFramebufferStatus(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCheckNamedFramebufferStatusEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [AutoGenerated(Category = "EXT_texture_integer", 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
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", 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
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,,] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T4 data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T4)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T4[,,] data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferDataEXT")]
            public static 
            void ClearNamedBufferData<T4>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T4 data)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T4)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(Int32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T6 data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T6)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] T6[,,] data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_clear_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_clear_buffer_object", Version = "4.3", EntryPoint = "glClearNamedBufferSubDataEXT")]
            public static 
            void ClearNamedBufferSubData<T6>(UInt32 buffer, OpenTK.Graphics.OpenGL.ArbClearBufferObject internalformat, IntPtr offset, IntPtr size, OpenTK.Graphics.OpenGL.ArbClearBufferObject format, OpenTK.Graphics.OpenGL.ArbClearBufferObject type, [InAttribute, OutAttribute] ref T6 data)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glClearNamedBufferSubDataEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)internalformat, (IntPtr)offset, (IntPtr)size, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)format, (OpenTK.Graphics.OpenGL.ArbClearBufferObject)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T6)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glClientAttribDefaultEXT")]
            public static 
            void ClientAttribDefault(OpenTK.Graphics.OpenGL.ClientAttribMask mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClientAttribDefaultEXT((OpenTK.Graphics.OpenGL.ClientAttribMask)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", 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
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", 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>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointerEXT((Int32)size, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glColorPointerEXT")]
            public static 
            void ColorPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorSubTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] data)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorSubTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glColorSubTableEXT")]
            public static 
            void ColorSubTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 count, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)count, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T5)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalFormat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalFormat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalFormat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalFormat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glColorTableEXT")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalFormat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalFormat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                    table = (T5)table_ptr.Target;
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage1DEXT")]
            public static 
            void CompressedMultiTexImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T8[,,] bits)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage2DEXT")]
            public static 
            void CompressedMultiTexImage2D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T8)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexImage3DEXT")]
            public static 
            void CompressedMultiTexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T7[,,] bits)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage1DEXT")]
            public static 
            void CompressedMultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T9[,,] bits)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage2DEXT")]
            public static 
            void CompressedMultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] T11[,,] bits)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle bits_ptr = GCHandle.Alloc(bits, GCHandleType.Pinned);
                try
                {
                    Delegates.glCompressedMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedMultiTexSubImage3DEXT")]
            public static 
            void CompressedMultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T11)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage1DEXT")]
            public static 
            void CompressedTextureImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T8)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage2DEXT")]
            public static 
            void CompressedTextureImage2D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T8)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureImage3DEXT")]
            public static 
            void CompressedTextureImage3D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage1DEXT")]
            public static 
            void CompressedTextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T7)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage2DEXT")]
            public static 
            void CompressedTextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T9)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T11)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, IntPtr bits)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCompressedTextureSubImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCompressedTextureSubImage3DEXT")]
            public static 
            void CompressedTextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, Int32 imageSize, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (Int32)imageSize, (IntPtr)bits_ptr.AddrOfPinnedObject());
                    bits = (T11)bits_ptr.Target;
                }
                finally
                {
                    bits_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionFilter1DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] image)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter1DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter1DEXT")]
            public static 
            void ConvolutionFilter1D<T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                    image = (T5)image_ptr.Target;
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] image)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glConvolutionFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionFilter2DEXT")]
            public static 
            void ConvolutionFilter2D<T6>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                    image = (T6)image_ptr.Target;
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameterfEXT")]
            public static 
            void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterfEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameterfvEXT")]
            public static 
            void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glConvolutionParameterfvEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameterfvEXT")]
            public static 
            unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterfvEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameteriEXT")]
            public static 
            void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameteriEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameterivEXT")]
            public static 
            void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glConvolutionParameterivEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glConvolutionParameterivEXT")]
            public static 
            unsafe void ConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterivEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_color_subtable]
        /// 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 = "EXT_color_subtable", Version = "1.2", EntryPoint = "glCopyColorSubTableEXT")]
            public static 
            void CopyColorSubTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, Int32 start, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyColorSubTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (Int32)start, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glCopyConvolutionFilter1DEXT")]
            public static 
            void CopyConvolutionFilter1D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyConvolutionFilter1DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glCopyConvolutionFilter2DEXT")]
            public static 
            void CopyConvolutionFilter2D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyConvolutionFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyMultiTexImage1DEXT")]
            public static 
            void CopyMultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyMultiTexImage2DEXT")]
            public static 
            void CopyMultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyMultiTexSubImage1DEXT")]
            public static 
            void CopyMultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyMultiTexSubImage2DEXT")]
            public static 
            void CopyMultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyMultiTexSubImage3DEXT")]
            public static 
            void CopyMultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_copy_texture]
        /// 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_COMPRESSED_RED, GL_COMPRESSED_RG, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA. GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGB_ALPHA. GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_STENCIL_INDEX8, GL_RED, GL_RG, 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_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. The height of the texture image is 1.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Must be 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_copy_texture", Version = "1.0", EntryPoint = "glCopyTexImage1DEXT")]
            public static 
            void CopyTexImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_copy_texture]
        /// 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_COMPRESSED_RED, GL_COMPRESSED_RG, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA. GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGB_ALPHA. GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_STENCIL_INDEX8, GL_RED, GL_RG, 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_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.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the texture image.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// Must be 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_copy_texture", Version = "1.0", EntryPoint = "glCopyTexImage2DEXT")]
            public static 
            void CopyTexImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_copy_texture]
        /// 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 = "EXT_copy_texture", Version = "1.0", EntryPoint = "glCopyTexSubImage1DEXT")]
            public static 
            void CopyTexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_copy_texture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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 = "EXT_copy_texture", Version = "1.0", EntryPoint = "glCopyTexSubImage2DEXT")]
            public static 
            void CopyTexSubImage2D(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_copy_texture]
        /// Copy a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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 = "EXT_copy_texture", Version = "1.0", EntryPoint = "glCopyTexSubImage3DEXT")]
            public static 
            void CopyTexSubImage3D(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureImage1DEXT")]
            public static 
            void CopyTextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureImage1DEXT")]
            public static 
            void CopyTextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureImage2DEXT")]
            public static 
            void CopyTextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureImage2DEXT")]
            public static 
            void CopyTextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 x, Int32 y, Int32 width, Int32 height, Int32 border)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)x, (Int32)y, (Int32)width, (Int32)height, (Int32)border);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage1DEXT")]
            public static 
            void CopyTextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage1DEXT")]
            public static 
            void CopyTextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage2DEXT")]
            public static 
            void CopyTextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage2DEXT")]
            public static 
            void CopyTextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage3DEXT")]
            public static 
            void CopyTextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glCopyTextureSubImage3DEXT")]
            public static 
            void CopyTextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)x, (Int32)y, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_separate_shader_objects]
        /// Create a stand-alone program from an array of null-terminated source code strings
        /// </summary>
        /// <param name="type">
        /// <para>
        /// Specifies the type of shader to create.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// Specifies the number of source code strings in the array strings.
        /// </para>
        /// </param>
        /// <param name="strings">
        /// <para>
        /// Specifies the address of an array of pointers to source code strings from which to create the program object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "1.2", EntryPoint = "glCreateShaderProgramEXT")]
            public static 
            Int32 CreateShaderProgram(OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects type, String @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glCreateShaderProgramEXT((OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects)type, (String)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glCullParameterdvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glCullParameterdvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterdvEXT")]
            public static 
            unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCullParameterdvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCullParameterfvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glCullParameterfvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_cull_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_cull_vertex", Version = "1.1", EntryPoint = "glCullParameterfvEXT")]
            public static 
            unsafe void CullParameter(OpenTK.Graphics.OpenGL.ExtCullVertex pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCullParameterfvEXT((OpenTK.Graphics.OpenGL.ExtCullVertex)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete framebuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="framebuffers">
        /// <para>
        /// A pointer to an array containing n framebuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Delete renderbuffer objects
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer objects to be deleted.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// A pointer to an array containing n renderbuffer objects to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_depth_bounds_test]</summary>
            [AutoGenerated(Category = "EXT_depth_bounds_test", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glDisableClientStateIndexedEXT")]
            public static 
            void DisableClientStateIndexed(OpenTK.Graphics.OpenGL.EnableCap array, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableClientStateIndexedEXT((OpenTK.Graphics.OpenGL.EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glDisableClientStateIndexedEXT")]
            public static 
            void DisableClientStateIndexed(OpenTK.Graphics.OpenGL.EnableCap array, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableClientStateIndexedEXT((OpenTK.Graphics.OpenGL.EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glDisableIndexedEXT")]
            public static 
            void DisableIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glDisableIndexedEXT")]
            public static 
            void DisableIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDisableIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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>[requires: EXT_vertex_array]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glDrawArraysEXT")]
            public static 
            void DrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a range of 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_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawArraysInstancedEXT")]
            public static 
            void DrawArraysInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawArraysInstancedEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)start, (Int32)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawElementsInstancedEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_instanced]
        /// Draw multiple instances of a set of 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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>
        /// <param name="primcount">
        /// <para>
        /// Specifies the number of instances of the specified range of indices to be rendered.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_draw_instanced", Version = "2.0", EntryPoint = "glDrawElementsInstancedEXT")]
            public static 
            void DrawElementsInstanced<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    indices = (T3)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 start, Int32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                    indices = (T5)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T5[,,] indices)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                try
                {
                    Delegates.glDrawRangeElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_draw_range_elements]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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 = "EXT_draw_range_elements", Version = "1.1", EntryPoint = "glDrawRangeElementsEXT")]
            public static 
            void DrawRangeElements<T5>(OpenTK.Graphics.OpenGL.PrimitiveType mode, UInt32 start, UInt32 end, Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (UInt32)start, (UInt32)end, (Int32)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject());
                    indices = (T5)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", 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>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", 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
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", 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>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glEnableClientStateIndexedEXT")]
            public static 
            void EnableClientStateIndexed(OpenTK.Graphics.OpenGL.EnableCap array, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableClientStateIndexedEXT((OpenTK.Graphics.OpenGL.EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glEnableClientStateIndexedEXT")]
            public static 
            void EnableClientStateIndexed(OpenTK.Graphics.OpenGL.EnableCap array, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableClientStateIndexedEXT((OpenTK.Graphics.OpenGL.EnableCap)array, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glEnableIndexedEXT")]
            public static 
            void EnableIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glEnableIndexedEXT")]
            public static 
            void EnableIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEnableIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_transform_feedback]</summary>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glEndTransformFeedbackEXT")]
            public static 
            void EndTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndTransformFeedbackEXT();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glEndVertexShaderEXT")]
            public static 
            void EndVertexShader()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndVertexShaderEXT();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFlushMappedNamedBufferRangeEXT")]
            public static 
            void FlushMappedNamedBufferRange(Int32 buffer, IntPtr offset, IntPtr length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushMappedNamedBufferRangeEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)length);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFlushMappedNamedBufferRangeEXT")]
            public static 
            void FlushMappedNamedBufferRange(UInt32 buffer, IntPtr offset, IntPtr length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushMappedNamedBufferRangeEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)length);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_fog_coord]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_fog_coord", 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>[requires: EXT_fog_coord]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_fog_coord", 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>[requires: EXT_fog_coord]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_fog_coord", 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>[requires: EXT_fog_coord]
        /// Set the current fog coordinates
        /// </summary>
        /// <param name="coord">
        /// <para>
        /// Specify the fog distance.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_fog_coord", 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>[requires: EXT_fog_coord]
        /// 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 = "EXT_fog_coord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordPointerEXT((OpenTK.Graphics.OpenGL.ExtFogCoord)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_fog_coord]
        /// 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 = "EXT_fog_coord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((OpenTK.Graphics.OpenGL.ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_fog_coord]
        /// 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 = "EXT_fog_coord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((OpenTK.Graphics.OpenGL.ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_fog_coord]
        /// 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 = "EXT_fog_coord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glFogCoordPointerEXT((OpenTK.Graphics.OpenGL.ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_fog_coord]
        /// 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 = "EXT_fog_coord", Version = "1.1", EntryPoint = "glFogCoordPointerEXT")]
            public static 
            void FogCoordPointer<T2>(OpenTK.Graphics.OpenGL.ExtFogCoord type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtFogCoord)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBufferEXT")]
            public static 
            void FramebufferDrawBuffer(Int32 framebuffer, OpenTK.Graphics.OpenGL.DrawBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.DrawBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBufferEXT")]
            public static 
            void FramebufferDrawBuffer(UInt32 framebuffer, OpenTK.Graphics.OpenGL.DrawBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.DrawBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.DrawBufferMode* bufs_ptr = bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.DrawBufferMode* bufs_ptr = &bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            unsafe void FramebufferDrawBuffers(Int32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode[] bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.DrawBufferMode* bufs_ptr = bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, ref OpenTK.Graphics.OpenGL.DrawBufferMode bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.DrawBufferMode* bufs_ptr = &bufs)
                    {
                        Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferDrawBuffersEXT")]
            public static 
            unsafe void FramebufferDrawBuffers(UInt32 framebuffer, Int32 n, OpenTK.Graphics.OpenGL.DrawBufferMode* bufs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferDrawBuffersEXT((UInt32)framebuffer, (Int32)n, (OpenTK.Graphics.OpenGL.DrawBufferMode*)bufs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferReadBufferEXT")]
            public static 
            void FramebufferReadBuffer(Int32 framebuffer, OpenTK.Graphics.OpenGL.ReadBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferReadBufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ReadBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glFramebufferReadBufferEXT")]
            public static 
            void FramebufferReadBuffer(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ReadBufferMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferReadBufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ReadBufferMode)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Attach a renderbuffer as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer.
        /// </para>
        /// </param>
        /// <param name="renderbuffertarget">
        /// <para>
        /// Specifies the renderbuffer target and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of an existing renderbuffer object of type renderbuffertarget to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferRenderbufferEXT")]
            public static 
            void FramebufferRenderbuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferRenderbufferEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Attach a renderbuffer as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer.
        /// </para>
        /// </param>
        /// <param name="renderbuffertarget">
        /// <para>
        /// Specifies the renderbuffer target and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies the name of an existing renderbuffer object of type renderbuffertarget to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferRenderbufferEXT")]
            public static 
            void FramebufferRenderbuffer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferRenderbufferEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture1DEXT")]
            public static 
            void FramebufferTexture1D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture1DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture1DEXT")]
            public static 
            void FramebufferTexture1D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture1DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture2DEXT")]
            public static 
            void FramebufferTexture2D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture2DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture2DEXT")]
            public static 
            void FramebufferTexture2D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture2DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture3DEXT")]
            public static 
            void FramebufferTexture3D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture3DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_framebuffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glFramebufferTexture3DEXT")]
            public static 
            void FramebufferTexture3D(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTexture3DEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureEXT")]
            public static 
            void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a level of a texture object as a logical buffer to the currently bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="textarget">
        /// <para>
        /// For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture parameter, or for cube map textures, which face is to be attached.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureEXT")]
            public static 
            void FramebufferTexture(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a face of a cube map texture as a logical buffer to the currently bound framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment. texture must be the name of an existing cube-map texture.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="face">
        /// <para>
        /// Specifies the face of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureFaceEXT")]
            public static 
            void FramebufferTextureFace(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a face of a cube map texture as a logical buffer to the currently bound framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment. texture must be the name of an existing cube-map texture.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="face">
        /// <para>
        /// Specifies the face of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureFaceEXT")]
            public static 
            void FramebufferTextureFace(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureFaceEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureLayerEXT")]
            public static 
            void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_geometry_program4]
        /// Attach a single layer of a texture to a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the framebuffer target. target must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment point of the framebuffer. attachment must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.
        /// </para>
        /// </param>
        /// <param name="texture">
        /// <para>
        /// Specifies the texture object to attach to the framebuffer attachment point named by attachment.
        /// </para>
        /// </param>
        /// <param name="level">
        /// <para>
        /// Specifies the mipmap level of texture to attach.
        /// </para>
        /// </param>
        /// <param name="layer">
        /// <para>
        /// Specifies the layer of texture to attach.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glFramebufferTextureLayerEXT")]
            public static 
            void FramebufferTextureLayer(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFramebufferTextureLayerEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate mipmaps for a specified texture target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which the texture whose mimaps to generate is bound. target must be GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY or GL_TEXTURE_CUBE_MAP.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenerateMipmapEXT")]
            public static 
            void GenerateMipmap(OpenTK.Graphics.OpenGL.GenerateMipmapTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateMipmapEXT((OpenTK.Graphics.OpenGL.GenerateMipmapTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGenerateMultiTexMipmapEXT")]
            public static 
            void GenerateMultiTexMipmap(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateMultiTexMipmapEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGenerateTextureMipmapEXT")]
            public static 
            void GenerateTextureMipmap(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateTextureMipmapEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGenerateTextureMipmapEXT")]
            public static 
            void GenerateTextureMipmap(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenerateTextureMipmapEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            unsafe void GenFramebuffers(Int32 n, [OutAttribute] Int32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            void GenFramebuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate framebuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of framebuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="ids">
        /// <para>
        /// Specifies an array in which the generated framebuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenFramebuffersEXT")]
            public static 
            unsafe void GenFramebuffers(Int32 n, [OutAttribute] UInt32* framebuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFramebuffersEXT((Int32)n, (UInt32*)framebuffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            unsafe void GenRenderbuffers(Int32 n, [OutAttribute] Int32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            void GenRenderbuffers(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Generate renderbuffer object names
        /// </summary>
        /// <param name="n">
        /// <para>
        /// Specifies the number of renderbuffer object names to generate.
        /// </para>
        /// </param>
        /// <param name="renderbuffers">
        /// <para>
        /// Specifies an array in which the generated renderbuffer object names are stored.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGenRenderbuffersEXT")]
            public static 
            unsafe void GenRenderbuffers(Int32 n, [OutAttribute] UInt32* renderbuffers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenRenderbuffersEXT((Int32)n, (UInt32*)renderbuffers);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGenSymbolsEXT")]
            public static 
            Int32 GenSymbol(OpenTK.Graphics.OpenGL.ExtVertexShader datatype, OpenTK.Graphics.OpenGL.ExtVertexShader storagetype, OpenTK.Graphics.OpenGL.ExtVertexShader range, Int32 components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenSymbolsEXT((OpenTK.Graphics.OpenGL.ExtVertexShader)datatype, (OpenTK.Graphics.OpenGL.ExtVertexShader)storagetype, (OpenTK.Graphics.OpenGL.ExtVertexShader)range, (UInt32)components);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGenSymbolsEXT")]
            public static 
            Int32 GenSymbol(OpenTK.Graphics.OpenGL.ExtVertexShader datatype, OpenTK.Graphics.OpenGL.ExtVertexShader storagetype, OpenTK.Graphics.OpenGL.ExtVertexShader range, UInt32 components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenSymbolsEXT((OpenTK.Graphics.OpenGL.ExtVertexShader)datatype, (OpenTK.Graphics.OpenGL.ExtVertexShader)storagetype, (OpenTK.Graphics.OpenGL.ExtVertexShader)range, (UInt32)components);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            unsafe void GenTextures(Int32 n, [OutAttribute] Int32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            void GenTextures(Int32 n, [OutAttribute] 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", Version = "1.0", EntryPoint = "glGenTexturesEXT")]
            public static 
            unsafe void GenTextures(Int32 n, [OutAttribute] UInt32* textures)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTexturesEXT((Int32)n, (UInt32*)textures);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, Int32 index, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetBooleanIndexedvEXT")]
            public static 
            unsafe void GetBooleanIndexed(OpenTK.Graphics.OpenGL.ExtDrawBuffers2 target, UInt32 index, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBooleanIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDrawBuffers2)target, (UInt32)index, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] data)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableEXT")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterfvEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterfvEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterfvEXT")]
            public static 
            unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterfvEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterivEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterivEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_paletted_texture]
        /// 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 = "EXT_paletted_texture", Version = "1.1", EntryPoint = "glGetColorTableParameterivEXT")]
            public static 
            unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.ColorTableTarget target, OpenTK.Graphics.OpenGL.GetColorTableParameterPName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterivEXT((OpenTK.Graphics.OpenGL.ColorTableTarget)target, (OpenTK.Graphics.OpenGL.GetColorTableParameterPName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] T3[,,] img)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle img_ptr = GCHandle.Alloc(img, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetCompressedMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedMultiTexImageEXT")]
            public static 
            void GetCompressedMultiTexImage<T3>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T3)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T3)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [OutAttribute] IntPtr img)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCompressedTextureImageEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetCompressedTextureImageEXT")]
            public static 
            void GetCompressedTextureImage<T3>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 lod, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)lod, (IntPtr)img_ptr.AddrOfPinnedObject());
                    img = (T3)img_ptr.Target;
                }
                finally
                {
                    img_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr image)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionFilterEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] image)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle image_ptr = GCHandle.Alloc(image, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetConvolutionFilterEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionFilterEXT")]
            public static 
            void GetConvolutionFilter<T3>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)image_ptr.AddrOfPinnedObject());
                    image = (T3)image_ptr.Target;
                }
                finally
                {
                    image_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetConvolutionParameterfvEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetConvolutionParameterfvEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterfvEXT")]
            public static 
            unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionParameterfvEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetConvolutionParameterivEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetConvolutionParameterivEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetConvolutionParameterivEXT")]
            public static 
            unsafe void GetConvolutionParameter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.ExtConvolution pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionParameterivEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.ExtConvolution)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Double data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = &data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Double data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* data_ptr = &data)
                    {
                        Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetDoubleIndexedvEXT")]
            public static 
            unsafe void GetDoubleIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDoubleIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFloatIndexedvEXT")]
            public static 
            unsafe void GetFloatIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFloatIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// Query the bindings of color numbers to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to query
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_gpu_shader4", 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
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// Query the bindings of color numbers to user-defined varying out variables
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the program containing varying out variable whose binding to query
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The name of the user-defined varying out variable whose binding to query
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_shader4", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferAttachmentParameterivEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferAttachmentParameterivEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about attachments of a bound framebuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation.
        /// </para>
        /// </param>
        /// <param name="attachment">
        /// <para>
        /// Specifies the attachment within target
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter of attachment to query.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of a variable receive the value of pname for attachment.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetFramebufferAttachmentParameter(OpenTK.Graphics.OpenGL.FramebufferTarget target, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.FramebufferParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferAttachmentParameterivEXT((OpenTK.Graphics.OpenGL.FramebufferTarget)target, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.FramebufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            unsafe void GetFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Retrieve a named parameter from a framebuffer
        /// </summary>
        /// <param name="target">
        /// <para>
        /// The target of the operation, which must be GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// A token indicating the parameter to be retrieved.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// The address of a variable to receive the value of the parameter named pname.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetFramebufferParameterivEXT")]
            public static 
            unsafe void GetFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramEXT")]
            public static 
            void GetHistogram<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                    values = (T4)values_ptr.Target;
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetHistogramParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetHistogramParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterfvEXT")]
            public static 
            unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetHistogramParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetHistogramParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetHistogramParameterivEXT")]
            public static 
            unsafe void GetHistogramParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, Int32 index, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glGetIntegerIndexedvEXT")]
            public static 
            unsafe void GetIntegerIndexed(OpenTK.Graphics.OpenGL.GetIndexedPName target, UInt32 index, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerIndexedvEXT((OpenTK.Graphics.OpenGL.GetIndexedPName)target, (UInt32)index, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            unsafe void GetInvariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantBooleanvEXT")]
            public static 
            unsafe void GetInvariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            unsafe void GetInvariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantFloatvEXT")]
            public static 
            unsafe void GetInvariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            unsafe void GetInvariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetInvariantIntegervEXT")]
            public static 
            unsafe void GetInvariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetInvariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            unsafe void GetLocalConstantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantBooleanvEXT")]
            public static 
            unsafe void GetLocalConstantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            unsafe void GetLocalConstantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantFloatvEXT")]
            public static 
            unsafe void GetLocalConstantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            unsafe void GetLocalConstantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetLocalConstantIntegervEXT")]
            public static 
            unsafe void GetLocalConstantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLocalConstantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T4[,,] values)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle values_ptr = GCHandle.Alloc(values, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxEXT")]
            public static 
            void GetMinmax<T4>(OpenTK.Graphics.OpenGL.ExtHistogram target, bool reset, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtHistogram)target, (bool)reset, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)values_ptr.AddrOfPinnedObject());
                    values = (T4)values_ptr.Target;
                }
                finally
                {
                    values_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMinmaxParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMinmaxParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterfvEXT")]
            public static 
            unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxParameterfvEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMinmaxParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMinmaxParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glGetMinmaxParameterivEXT")]
            public static 
            unsafe void GetMinmaxParameter(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.ExtHistogram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMinmaxParameterivEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.ExtHistogram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexEnvfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexEnvfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvfvEXT")]
            public static 
            unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexEnvfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexEnvivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexEnvivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexEnvivEXT")]
            public static 
            unsafe void GetMultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexEnvivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGendvEXT")]
            public static 
            unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGenfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGenfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenfvEXT")]
            public static 
            unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGenfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexGenivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexGenivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexGenivEXT")]
            public static 
            unsafe void GetMultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexGenivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] pixels)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMultiTexImageEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexImageEXT")]
            public static 
            void GetMultiTexImage<T5>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T5)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexLevelParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexLevelParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterfvEXT")]
            public static 
            unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexLevelParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexLevelParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexLevelParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexLevelParameterivEXT")]
            public static 
            unsafe void GetMultiTexLevelParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexLevelParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterfvEXT")]
            public static 
            unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIivEXT")]
            public static 
            unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterIuivEXT")]
            public static 
            unsafe void GetMultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMultiTexParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMultiTexParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetMultiTexParameterivEXT")]
            public static 
            unsafe void GetMultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultiTexParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferParameterivEXT")]
            public static 
            unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterivEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T2)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferPointervEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferPointervEXT")]
            public static 
            void GetNamedBufferPointer<T2>(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T2)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData(Int32 buffer, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData(UInt32 buffer, IntPtr offset, IntPtr size, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferSubDataEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)size, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedBufferSubDataEXT")]
            public static 
            void GetNamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferAttachmentParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedFramebufferAttachmentParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferAttachmentParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferAttachmentParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glGetNamedFramebufferParameterivEXT")]
            public static 
            unsafe void GetNamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedFramebufferParameterivEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ProgramProperty)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            unsafe void GetNamedProgram(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ProgramProperty)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ProgramProperty)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramivEXT")]
            public static 
            unsafe void GetNamedProgram(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ProgramProperty pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ProgramProperty)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterdvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterdvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterfvEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameter(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterfvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramLocalParameterIuivEXT")]
            public static 
            unsafe void GetNamedProgramLocalParameterI(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramLocalParameterIuivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramStringEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T3)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [OutAttribute] IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedProgramStringEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedProgramStringEXT")]
            public static 
            void GetNamedProgramString<T3>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)pname, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T3)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            unsafe void GetNamedRenderbufferParameter(Int32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetNamedRenderbufferParameterivEXT")]
            public static 
            unsafe void GetNamedRenderbufferParameter(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedRenderbufferParameterivEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterfvEXT")]
            public static 
            void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTransformParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterfvEXT")]
            public static 
            void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTransformParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterfvEXT")]
            public static 
            unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTransformParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterivEXT")]
            public static 
            void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTransformParameterivEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterivEXT")]
            public static 
            void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTransformParameterivEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glGetPixelTransformParameterivEXT")]
            public static 
            unsafe void GetPixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTransformParameterivEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] T2[,,] data)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle data_ptr = GCHandle.Alloc(data, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointerIndexedvEXT((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetPointerIndexedvEXT")]
            public static 
            void GetPointerIndexed<T2>(OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_vertex_array", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer(OpenTK.Graphics.OpenGL.GetPointervPName pname, [OutAttribute] IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPointervEXT((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_vertex_array", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_vertex_array", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_vertex_array", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] T1[,,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPointervEXT((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_vertex_array", Version = "1.0", EntryPoint = "glGetPointervEXT")]
            public static 
            void GetPointer<T1>(OpenTK.Graphics.OpenGL.GetPointervPName pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.GetPointervPName)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T1)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            unsafe void GetQueryObject(Int32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjecti64vEXT")]
            public static 
            unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjecti64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetQueryObjectui64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_timer_query]
        /// 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>
        /// If a buffer is bound to the GL_QUERY_RESULT_BUFFER target, then params is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to GL_QUERY_RESULT_BUFFER, then params is treated as an address in client memory of a variable to receive the resulting data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_timer_query", Version = "1.5", EntryPoint = "glGetQueryObjectui64vEXT")]
            public static 
            unsafe void GetQueryObject(UInt32 id, OpenTK.Graphics.OpenGL.ExtTimerQuery pname, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetQueryObjectui64vEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtTimerQuery)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetRenderbufferParameterivEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetRenderbufferParameterivEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Retrieve information about a bound renderbuffer object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the query operation. target must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the parameter whose value to retrieve from the renderbuffer bound to target.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Specifies the address of an array to receive the value of the queried parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glGetRenderbufferParameterivEXT")]
            public static 
            unsafe void GetRenderbufferParameter(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetRenderbufferParameterivEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr row, [OutAttribute] IntPtr column, [OutAttribute] IntPtr span)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetSeparableFilterEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row, (IntPtr)column, (IntPtr)span);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] row, [InAttribute, OutAttribute] T4[] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] row, [InAttribute, OutAttribute] T4[,] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] row, [InAttribute, OutAttribute] T4[,,] column, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.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>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glGetSeparableFilterEXT")]
            public static 
            void GetSeparableFilter<T3,T4,T5>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T3 row, [InAttribute, OutAttribute] ref T4 column, [InAttribute, OutAttribute] ref 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject(), (IntPtr)span_ptr.AddrOfPinnedObject());
                    row = (T3)row_ptr.Target;
                    column = (T4)column_ptr.Target;
                    span = (T5)span_ptr.Target;
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                    span_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIivEXT")]
            public static 
            unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glGetTexParameterIuivEXT")]
            public static 
            unsafe void GetTexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureImageEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T5)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureImageEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureImageEXT")]
            public static 
            void GetTextureImage<T5>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T5)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterfvEXT")]
            public static 
            unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            unsafe void GetTextureLevelParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureLevelParameterivEXT")]
            public static 
            unsafe void GetTextureLevelParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureLevelParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterfvEXT")]
            public static 
            unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            unsafe void GetTextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIivEXT")]
            public static 
            unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterIuivEXT")]
            public static 
            unsafe void GetTextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            unsafe void GetTextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glGetTextureParameterivEXT")]
            public static 
            unsafe void GetTextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.GetTextureParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.GetTextureParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ExtTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ExtTransformFeedback*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ExtTransformFeedback*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.ExtTransformFeedback type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.ExtTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.ExtTransformFeedback*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glGetTransformFeedbackVaryingEXT")]
            public static 
            unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.ExtTransformFeedback* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingEXT((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.ExtTransformFeedback*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_bindable_uniform]</summary>
            [AutoGenerated(Category = "EXT_bindable_uniform", 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
            }

            /// <summary>[requires: EXT_bindable_uniform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_bindable_uniform", 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
            }

            /// <summary>[requires: EXT_bindable_uniform]</summary>
            [AutoGenerated(Category = "EXT_bindable_uniform", 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
            }

            /// <summary>[requires: EXT_bindable_uniform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_bindable_uniform", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(Int32 program, Int32 location, [OutAttribute] 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", Version = "2.0", EntryPoint = "glGetUniformuivEXT")]
            public static 
            unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformuivEXT((UInt32)program, (Int32)location, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            unsafe void GetVariantBoolean(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out bool data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (bool* data_ptr = &data)
                    {
                        Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantBooleanvEXT")]
            public static 
            unsafe void GetVariantBoolean(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] bool* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantBooleanvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (bool*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            unsafe void GetVariantFloat(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Single data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* data_ptr = &data)
                    {
                        Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantFloatvEXT")]
            public static 
            unsafe void GetVariantFloat(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Single* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantFloatvEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Single*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            unsafe void GetVariantInteger(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32[] data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] out Int32 data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* data_ptr = &data)
                    {
                        Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data_ptr);
                        data = *data_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantIntegervEXT")]
            public static 
            unsafe void GetVariantInteger(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] Int32* data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantIntegervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (Int32*)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantPointervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [OutAttribute] IntPtr data)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVariantPointervEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glGetVariantPointervEXT")]
            public static 
            void GetVariantPointer<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader value, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)value, (IntPtr)data_ptr.AddrOfPinnedObject());
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            unsafe void GetVertexAttribI(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIivEXT")]
            public static 
            unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
            public static 
            void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribIuivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glGetVertexAttribIuivEXT")]
            public static 
            unsafe void GetVertexAttribI(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram4 pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribIuivEXT((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram4)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            unsafe void GetVertexAttribL(Int32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLdvEXT")]
            public static 
            unsafe void GetVertexAttribL(UInt32 index, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribLdvEXT((UInt32)index, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glHistogramEXT")]
            public static 
            void Histogram(OpenTK.Graphics.OpenGL.ExtHistogram target, Int32 width, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, bool sink)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (Int32)width, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (bool)sink);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_x11_sync_object]</summary>
            [AutoGenerated(Category = "EXT_x11_sync_object", Version = "3.2", EntryPoint = "glImportSyncEXT")]
            public static 
            IntPtr ImportSync(OpenTK.Graphics.OpenGL.ExtX11SyncObject external_sync_type, IntPtr external_sync, Int32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glImportSyncEXT((OpenTK.Graphics.OpenGL.ExtX11SyncObject)external_sync_type, (IntPtr)external_sync, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_x11_sync_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_x11_sync_object", Version = "3.2", EntryPoint = "glImportSyncEXT")]
            public static 
            IntPtr ImportSync(OpenTK.Graphics.OpenGL.ExtX11SyncObject external_sync_type, IntPtr external_sync, UInt32 flags)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glImportSyncEXT((OpenTK.Graphics.OpenGL.ExtX11SyncObject)external_sync_type, (IntPtr)external_sync, (UInt32)flags);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_index_func]</summary>
            [AutoGenerated(Category = "EXT_index_func", Version = "1.1", EntryPoint = "glIndexFuncEXT")]
            public static 
            void IndexFunc(OpenTK.Graphics.OpenGL.ExtIndexFunc func, Single @ref)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexFuncEXT((OpenTK.Graphics.OpenGL.ExtIndexFunc)func, (Single)@ref);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_index_material]</summary>
            [AutoGenerated(Category = "EXT_index_material", Version = "1.1", EntryPoint = "glIndexMaterialEXT")]
            public static 
            void IndexMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.ExtIndexMaterial mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexMaterialEXT((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.ExtIndexMaterial)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexPointerEXT((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glIndexPointerEXT((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glIndexPointerEXT")]
            public static 
            void IndexPointer<T3>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glIsEnabledIndexedEXT")]
            public static 
            bool IsEnabledIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, Int32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsEnabledIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_draw_buffers2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_draw_buffers2", Version = "2.0", EntryPoint = "glIsEnabledIndexedEXT")]
            public static 
            bool IsEnabledIndexed(OpenTK.Graphics.OpenGL.IndexedEnableCap target, UInt32 index)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsEnabledIndexedEXT((OpenTK.Graphics.OpenGL.IndexedEnableCap)target, (UInt32)index);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Determine if a name corresponds to a framebuffer object
        /// </summary>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies a value that may be the name of a framebuffer object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Determine if a name corresponds to a framebuffer object
        /// </summary>
        /// <param name="framebuffer">
        /// <para>
        /// Specifies a value that may be the name of a framebuffer object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Determine if a name corresponds to a renderbuffer object
        /// </summary>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies a value that may be the name of a renderbuffer object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", 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
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Determine if a name corresponds to a renderbuffer object
        /// </summary>
        /// <param name="renderbuffer">
        /// <para>
        /// Specifies a value that may be the name of a renderbuffer object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_framebuffer_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glIsVariantEnabledEXT")]
            public static 
            bool IsVariantEnabled(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader cap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVariantEnabledEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)cap);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glIsVariantEnabledEXT")]
            public static 
            bool IsVariantEnabled(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader cap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsVariantEnabledEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)cap);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_compiled_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_compiled_vertex_array", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMapNamedBufferEXT")]
            public static 
            IntPtr MapNamedBuffer(Int32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMapNamedBufferEXT")]
            public static 
            IntPtr MapNamedBuffer(UInt32 buffer, OpenTK.Graphics.OpenGL.ExtDirectStateAccess access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferEXT((UInt32)buffer, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMapNamedBufferRangeEXT")]
            public static 
            IntPtr MapNamedBufferRange(Int32 buffer, IntPtr offset, IntPtr length, OpenTK.Graphics.OpenGL.BufferAccessMask access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferRangeEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)length, (OpenTK.Graphics.OpenGL.BufferAccessMask)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMapNamedBufferRangeEXT")]
            public static 
            IntPtr MapNamedBufferRange(UInt32 buffer, IntPtr offset, IntPtr length, OpenTK.Graphics.OpenGL.BufferAccessMask access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapNamedBufferRangeEXT((UInt32)buffer, (IntPtr)offset, (IntPtr)length, (OpenTK.Graphics.OpenGL.BufferAccessMask)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixFrustumEXT")]
            public static 
            void MatrixFrustum(OpenTK.Graphics.OpenGL.MatrixMode mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixFrustumEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixLoaddEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixLoaddEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoaddEXT")]
            public static 
            unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoaddEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixLoadfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadfEXT")]
            public static 
            unsafe void MatrixLoad(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadIdentityEXT")]
            public static 
            void MatrixLoadIdentity(OpenTK.Graphics.OpenGL.MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadIdentityEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixLoadTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposedEXT")]
            public static 
            unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixLoadTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixLoadTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixLoadTransposefEXT")]
            public static 
            unsafe void MatrixLoadTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixLoadTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixMultdEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixMultdEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultdEXT")]
            public static 
            unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultdEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixMultfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixMultfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultfEXT")]
            public static 
            unsafe void MatrixMult(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultfEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = m)
                    {
                        Delegates.glMatrixMultTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Double m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* m_ptr = &m)
                    {
                        Delegates.glMatrixMultTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposedEXT")]
            public static 
            unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Double* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultTransposedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = m)
                    {
                        Delegates.glMatrixMultTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, ref Single m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* m_ptr = &m)
                    {
                        Delegates.glMatrixMultTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixMultTransposefEXT")]
            public static 
            unsafe void MatrixMultTranspose(OpenTK.Graphics.OpenGL.MatrixMode mode, Single* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixMultTransposefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixOrthoEXT")]
            public static 
            void MatrixOrtho(OpenTK.Graphics.OpenGL.MatrixMode mode, Double left, Double right, Double bottom, Double top, Double zNear, Double zFar)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixOrthoEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double)left, (Double)right, (Double)bottom, (Double)top, (Double)zNear, (Double)zFar);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixPopEXT")]
            public static 
            void MatrixPop(OpenTK.Graphics.OpenGL.MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixPopEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixPushEXT")]
            public static 
            void MatrixPush(OpenTK.Graphics.OpenGL.MatrixMode mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixPushEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixRotatedEXT")]
            public static 
            void MatrixRotate(OpenTK.Graphics.OpenGL.MatrixMode mode, Double angle, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixRotatedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double)angle, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixRotatefEXT")]
            public static 
            void MatrixRotate(OpenTK.Graphics.OpenGL.MatrixMode mode, Single angle, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixRotatefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single)angle, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixScaledEXT")]
            public static 
            void MatrixScale(OpenTK.Graphics.OpenGL.MatrixMode mode, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixScaledEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixScalefEXT")]
            public static 
            void MatrixScale(OpenTK.Graphics.OpenGL.MatrixMode mode, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixScalefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixTranslatedEXT")]
            public static 
            void MatrixTranslate(OpenTK.Graphics.OpenGL.MatrixMode mode, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixTranslatedEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMatrixTranslatefEXT")]
            public static 
            void MatrixTranslate(OpenTK.Graphics.OpenGL.MatrixMode mode, Single x, Single y, Single z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMatrixTranslatefEXT((OpenTK.Graphics.OpenGL.MatrixMode)mode, (Single)x, (Single)y, (Single)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_shader_image_load_store]
        /// Defines a barrier ordering memory transactions
        /// </summary>
        /// <param name="barriers">
        /// <para>
        /// Specifies the barriers to insert. Must be a bitwise combination of GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT, GL_ELEMENT_ARRAY_BARRIER_BIT, GL_UNIFORM_BARRIER_BIT, GL_TEXTURE_FETCH_BARRIER_BIT, GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_COMMAND_BARRIER_BIT, GL_PIXEL_BUFFER_BARRIER_BIT, GL_TEXTURE_UPDATE_BARRIER_BIT, GL_BUFFER_UPDATE_BARRIER_BIT, GL_FRAMEBUFFER_BARRIER_BIT, GL_TRANSFORM_FEEDBACK_BARRIER_BIT, GL_ATOMIC_COUNTER_BARRIER_BIT, or GL_SHADER_STORAGE_BARRIER_BIT. If the special value GL_ALL_BARRIER_BITS is specified, all supported barriers will be inserted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_shader_image_load_store", Version = "4.1", EntryPoint = "glMemoryBarrierEXT")]
            public static 
            void MemoryBarrier(Int32 barriers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMemoryBarrierEXT((UInt32)barriers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_shader_image_load_store]
        /// Defines a barrier ordering memory transactions
        /// </summary>
        /// <param name="barriers">
        /// <para>
        /// Specifies the barriers to insert. Must be a bitwise combination of GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT, GL_ELEMENT_ARRAY_BARRIER_BIT, GL_UNIFORM_BARRIER_BIT, GL_TEXTURE_FETCH_BARRIER_BIT, GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_COMMAND_BARRIER_BIT, GL_PIXEL_BUFFER_BARRIER_BIT, GL_TEXTURE_UPDATE_BARRIER_BIT, GL_BUFFER_UPDATE_BARRIER_BIT, GL_FRAMEBUFFER_BARRIER_BIT, GL_TRANSFORM_FEEDBACK_BARRIER_BIT, GL_ATOMIC_COUNTER_BARRIER_BIT, or GL_SHADER_STORAGE_BARRIER_BIT. If the special value GL_ALL_BARRIER_BITS is specified, all supported barriers will be inserted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_shader_image_load_store", Version = "4.1", EntryPoint = "glMemoryBarrierEXT")]
            public static 
            void MemoryBarrier(UInt32 barriers)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMemoryBarrierEXT((UInt32)barriers);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// 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 = "EXT_histogram", Version = "1.0", EntryPoint = "glMinmaxEXT")]
            public static 
            void Minmax(OpenTK.Graphics.OpenGL.ExtHistogram target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, bool sink)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (bool)sink);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType 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.glMultiDrawArraysEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType 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.glMultiDrawArraysEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the first and count
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawArraysEXT")]
            public static 
            unsafe void MultiDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* first, Int32* count, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawArraysEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)first, (Int32*)count, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiDrawElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                            indices = (T3)indices_ptr.Target;
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiDrawElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                            indices = (T3)indices_ptr.Target;
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiDrawElementsEXT((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_multi_draw_arrays]
        /// 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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY and GL_PATCHES 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="drawcount">
        /// <para>
        /// Specifies the size of the count and indices arrays.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_multi_draw_arrays", Version = "1.1", EntryPoint = "glMultiDrawElementsEXT")]
            public static 
            unsafe void MultiDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount);
                    indices = (T3)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexBufferEXT")]
            public static 
            void MultiTexBuffer(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexBufferEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexBufferEXT")]
            public static 
            void MultiTexBuffer(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexBufferEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoordPointerEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexCoordPointerEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexCoordPointerEXT")]
            public static 
            void MultiTexCoordPointer<T4>(OpenTK.Graphics.OpenGL.TextureUnit texunit, Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvfEXT")]
            public static 
            void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvfEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
            public static 
            void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexEnvfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvfvEXT")]
            public static 
            unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnviEXT")]
            public static 
            void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnviEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
            public static 
            void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexEnvivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexEnvivEXT")]
            public static 
            unsafe void MultiTexEnv(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureEnvTarget target, OpenTK.Graphics.OpenGL.TextureEnvParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexEnvivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureEnvTarget)target, (OpenTK.Graphics.OpenGL.TextureEnvParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendEXT")]
            public static 
            void MultiTexGend(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGendEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGendvEXT")]
            public static 
            unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGendvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenfEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenfEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGenfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenfvEXT")]
            public static 
            unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGeniEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGeniEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenivEXT")]
            public static 
            void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexGenivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexGenivEXT")]
            public static 
            unsafe void MultiTexGen(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureCoordName coord, OpenTK.Graphics.OpenGL.TextureGenParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexGenivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureCoordName)coord, (OpenTK.Graphics.OpenGL.TextureGenParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage1DEXT")]
            public static 
            void MultiTexImage1D<T8>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T8)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage2DEXT")]
            public static 
            void MultiTexImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexImage3DEXT")]
            public static 
            void MultiTexImage3D<T10>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T10)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterfEXT")]
            public static 
            void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterfEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
            public static 
            void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterfvEXT")]
            public static 
            unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterfvEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameteriEXT")]
            public static 
            void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameteriEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIivEXT")]
            public static 
            unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterIuivEXT")]
            public static 
            unsafe void MultiTexParameterI(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
            public static 
            void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMultiTexParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexParameterivEXT")]
            public static 
            unsafe void MultiTexParameter(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexParameterivEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexRenderbufferEXT")]
            public static 
            void MultiTexRenderbuffer(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexRenderbufferEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexRenderbufferEXT")]
            public static 
            void MultiTexRenderbuffer(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexRenderbufferEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T7[,,] pixels)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage1DEXT")]
            public static 
            void MultiTexSubImage1D<T7>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T7)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage2DEXT")]
            public static 
            void MultiTexSubImage2D<T9>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T11[,,] pixels)
                where T11 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glMultiTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glMultiTexSubImage3DEXT")]
            public static 
            void MultiTexSubImage3D<T11>(OpenTK.Graphics.OpenGL.TextureUnit texunit, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureUnit)texunit, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T11)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData(Int32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(Int32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData(UInt32 buffer, IntPtr size, IntPtr data, OpenTK.Graphics.OpenGL.ExtDirectStateAccess usage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedBufferDataEXT((UInt32)buffer, (IntPtr)size, (IntPtr)data, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] T2[,,] data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferDataEXT")]
            public static 
            void NamedBufferData<T2>(UInt32 buffer, IntPtr size, [InAttribute, OutAttribute] ref T2 data, OpenTK.Graphics.OpenGL.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(), (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)usage);
                    data = (T2)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(Int32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedBufferSubDataEXT")]
            public static 
            void NamedBufferSubData<T3>(UInt32 buffer, IntPtr offset, IntPtr size, [InAttribute, OutAttribute] 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());
                    data = (T3)data_ptr.Target;
                }
                finally
                {
                    data_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedCopyBufferSubDataEXT")]
            public static 
            void NamedCopyBufferSubData(Int32 readBuffer, Int32 writeBuffer, IntPtr readOffset, IntPtr writeOffset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedCopyBufferSubDataEXT((UInt32)readBuffer, (UInt32)writeBuffer, (IntPtr)readOffset, (IntPtr)writeOffset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedCopyBufferSubDataEXT")]
            public static 
            void NamedCopyBufferSubData(UInt32 readBuffer, UInt32 writeBuffer, IntPtr readOffset, IntPtr writeOffset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedCopyBufferSubDataEXT((UInt32)readBuffer, (UInt32)writeBuffer, (IntPtr)readOffset, (IntPtr)writeOffset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glNamedFramebufferParameteriEXT")]
            public static 
            void NamedFramebufferParameter(Int32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferParameteriEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_framebuffer_no_attachments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_framebuffer_no_attachments", Version = "4.3", EntryPoint = "glNamedFramebufferParameteriEXT")]
            public static 
            void NamedFramebufferParameter(UInt32 framebuffer, OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferParameteriEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.ArbFramebufferNoAttachments)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferRenderbufferEXT")]
            public static 
            void NamedFramebufferRenderbuffer(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferRenderbufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferRenderbufferEXT")]
            public static 
            void NamedFramebufferRenderbuffer(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.RenderbufferTarget renderbuffertarget, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferRenderbufferEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.RenderbufferTarget)renderbuffertarget, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture1DEXT")]
            public static 
            void NamedFramebufferTexture1D(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture1DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture1DEXT")]
            public static 
            void NamedFramebufferTexture1D(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture1DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture2DEXT")]
            public static 
            void NamedFramebufferTexture2D(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture2DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture2DEXT")]
            public static 
            void NamedFramebufferTexture2D(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture2DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture3DEXT")]
            public static 
            void NamedFramebufferTexture3D(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, Int32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture3DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTexture3DEXT")]
            public static 
            void NamedFramebufferTexture3D(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, OpenTK.Graphics.OpenGL.TextureTarget textarget, UInt32 texture, Int32 level, Int32 zoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTexture3DEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (OpenTK.Graphics.OpenGL.TextureTarget)textarget, (UInt32)texture, (Int32)level, (Int32)zoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureEXT")]
            public static 
            void NamedFramebufferTexture(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureEXT")]
            public static 
            void NamedFramebufferTexture(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureFaceEXT")]
            public static 
            void NamedFramebufferTextureFace(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureFaceEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureFaceEXT")]
            public static 
            void NamedFramebufferTextureFace(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, OpenTK.Graphics.OpenGL.TextureTarget face)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureFaceEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (OpenTK.Graphics.OpenGL.TextureTarget)face);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureLayerEXT")]
            public static 
            void NamedFramebufferTextureLayer(Int32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, Int32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureLayerEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedFramebufferTextureLayerEXT")]
            public static 
            void NamedFramebufferTextureLayer(UInt32 framebuffer, OpenTK.Graphics.OpenGL.FramebufferAttachment attachment, UInt32 texture, Int32 level, Int32 layer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedFramebufferTextureLayerEXT((UInt32)framebuffer, (OpenTK.Graphics.OpenGL.FramebufferAttachment)attachment, (UInt32)texture, (Int32)level, (Int32)layer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4dvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4dvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameter4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameter4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameter4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4iEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4iEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4iEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4iEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uiEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4uiEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glNamedProgramLocalParameterI4uivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameterI4uivEXT")]
            public static 
            unsafe void NamedProgramLocalParameterI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameterI4uivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameters4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParameters4fvEXT")]
            public static 
            unsafe void NamedProgramLocalParameters4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParameters4fvEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4ivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4ivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramLocalParametersI4uivEXT")]
            public static 
            unsafe void NamedProgramLocalParametersI4(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramLocalParametersI4uivEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramStringEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(Int32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T4)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, IntPtr @string)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedProgramStringEXT((UInt32)program, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedProgramStringEXT")]
            public static 
            void NamedProgramString<T4>(UInt32 program, OpenTK.Graphics.OpenGL.ExtDirectStateAccess target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess format, Int32 len, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)format, (Int32)len, (IntPtr)@string_ptr.AddrOfPinnedObject());
                    @string = (T4)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageEXT")]
            public static 
            void NamedRenderbufferStorage(Int32 renderbuffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageEXT")]
            public static 
            void NamedRenderbufferStorage(UInt32 renderbuffer, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageEXT((UInt32)renderbuffer, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleCoverageEXT")]
            public static 
            void NamedRenderbufferStorageMultisampleCoverage(Int32 renderbuffer, Int32 coverageSamples, Int32 colorSamples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleCoverageEXT((UInt32)renderbuffer, (Int32)coverageSamples, (Int32)colorSamples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleCoverageEXT")]
            public static 
            void NamedRenderbufferStorageMultisampleCoverage(UInt32 renderbuffer, Int32 coverageSamples, Int32 colorSamples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleCoverageEXT((UInt32)renderbuffer, (Int32)coverageSamples, (Int32)colorSamples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleEXT")]
            public static 
            void NamedRenderbufferStorageMultisample(Int32 renderbuffer, Int32 samples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleEXT((UInt32)renderbuffer, (Int32)samples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glNamedRenderbufferStorageMultisampleEXT")]
            public static 
            void NamedRenderbufferStorageMultisample(UInt32 renderbuffer, Int32 samples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNamedRenderbufferStorageMultisampleEXT((UInt32)renderbuffer, (Int32)samples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] T3[,,] pointer)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glNormalPointerEXT")]
            public static 
            void NormalPointer<T3>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glPixelTransformParameterfEXT")]
            public static 
            void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterfEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glPixelTransformParameterfvEXT")]
            public static 
            unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glPixelTransformParameteriEXT")]
            public static 
            void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameteriEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_pixel_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_pixel_transform", Version = "1.1", EntryPoint = "glPixelTransformParameterivEXT")]
            public static 
            unsafe void PixelTransformParameter(OpenTK.Graphics.OpenGL.ExtPixelTransform target, OpenTK.Graphics.OpenGL.ExtPixelTransform pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransformParameterivEXT((OpenTK.Graphics.OpenGL.ExtPixelTransform)target, (OpenTK.Graphics.OpenGL.ExtPixelTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "EXT_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfEXT")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfEXT((OpenTK.Graphics.OpenGL.ExtPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "EXT_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvEXT")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "EXT_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvEXT")]
            public static 
            unsafe void PointParameter(OpenTK.Graphics.OpenGL.ExtPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvEXT((OpenTK.Graphics.OpenGL.ExtPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_polygon_offset]
        /// 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 = "EXT_polygon_offset", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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
            }

            
        /// <summary>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_texture_object]
        /// 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 = "EXT_texture_object", 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>[requires: EXT_gpu_program_parameters]</summary>
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramEnvParameters4fvEXT")]
            public static 
            unsafe void ProgramEnvParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, Int32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_gpu_program_parameters]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_gpu_program_parameters", Version = "1.2", EntryPoint = "glProgramLocalParameters4fvEXT")]
            public static 
            unsafe void ProgramLocalParameters4(OpenTK.Graphics.OpenGL.ExtGpuProgramParameters target, UInt32 index, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameters4fvEXT((OpenTK.Graphics.OpenGL.ExtGpuProgramParameters)target, (UInt32)index, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_geometry_shader4]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_geometry_shader4", Version = "2.0", EntryPoint = "glProgramParameteriEXT")]
            public static 
            void ProgramParameter(Int32 program, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriEXT((UInt32)program, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_geometry_shader4]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_geometry_shader4", Version = "2.0", EntryPoint = "glProgramParameteriEXT")]
            public static 
            void ProgramParameter(UInt32 program, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameteriEXT((UInt32)program, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1dEXT((UInt32)program, (Int32)location, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1dEXT((UInt32)program, (Int32)location, (Double)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform1dvEXT")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform2dvEXT")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform3dvEXT")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4dEXT((UInt32)program, (Int32)location, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniform4dvEXT")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4dvEXT((UInt32)program, (Int32)location, (Int32)count, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_direct_state_access]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix2x4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix2x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix2x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix3x4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix3x4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix3x4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x2(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x2dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x2(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x2dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x3(Int32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = value)
                    {
                        Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, ref Double value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* value_ptr = &value)
                    {
                        Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "1.2", EntryPoint = "glProgramUniformMatrix4x3dvEXT")]
            public static 
            unsafe void ProgramUniformMatrix4x3(UInt32 program, Int32 location, Int32 count, bool transpose, Double* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformMatrix4x3dvEXT((UInt32)program, (Int32)location, (Int32)count, (bool)transpose, (Double*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            
        /// <summary>[requires: EXT_provoking_vertex]
        /// Specifiy the vertex to be used as the source of data for flat shaded varyings
        /// </summary>
        /// <param name="provokeMode">
        /// <para>
        /// Specifies the vertex to be used as the source of data for flat shaded varyings.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_provoking_vertex", Version = "2.1", EntryPoint = "glProvokingVertexEXT")]
            public static 
            void ProvokingVertex(OpenTK.Graphics.OpenGL.ExtProvokingVertex mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProvokingVertexEXT((OpenTK.Graphics.OpenGL.ExtProvokingVertex)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glPushClientAttribDefaultEXT")]
            public static 
            void PushClientAttribDefault(OpenTK.Graphics.OpenGL.ClientAttribMask mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPushClientAttribDefaultEXT((OpenTK.Graphics.OpenGL.ClientAttribMask)mask);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_object]
        /// Establish data storage, format and dimensions of a renderbuffer object's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a binding to which the target of the allocation and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format to use for the renderbuffer object's image.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the renderbuffer, in pixels.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_object", Version = "1.2", EntryPoint = "glRenderbufferStorageEXT")]
            public static 
            void RenderbufferStorage(OpenTK.Graphics.OpenGL.RenderbufferTarget target, OpenTK.Graphics.OpenGL.RenderbufferStorage internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageEXT((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (OpenTK.Graphics.OpenGL.RenderbufferStorage)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_framebuffer_multisample]
        /// Establish data storage, format, dimensions and sample count of a renderbuffer object's image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a binding to which the target of the allocation and must be GL_RENDERBUFFER.
        /// </para>
        /// </param>
        /// <param name="samples">
        /// <para>
        /// Specifies the number of samples to be used for the renderbuffer object's storage.
        /// </para>
        /// </param>
        /// <param name="internalformat">
        /// <para>
        /// Specifies the internal format to use for the renderbuffer object's image.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the renderbuffer, in pixels.
        /// </para>
        /// </param>
        /// <param name="height">
        /// <para>
        /// Specifies the height of the renderbuffer, in pixels.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_framebuffer_multisample", Version = "1.5", EntryPoint = "glRenderbufferStorageMultisampleEXT")]
            public static 
            void RenderbufferStorageMultisample(OpenTK.Graphics.OpenGL.ExtFramebufferMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.ExtFramebufferMultisample internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageMultisampleEXT((OpenTK.Graphics.OpenGL.ExtFramebufferMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.ExtFramebufferMultisample)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// Reset histogram table entries to zero
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_HISTOGRAM.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_histogram", Version = "1.0", EntryPoint = "glResetHistogramEXT")]
            public static 
            void ResetHistogram(OpenTK.Graphics.OpenGL.ExtHistogram target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResetHistogramEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_histogram]
        /// Reset minmax table entries to initial values
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Must be GL_MINMAX.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_histogram", Version = "1.0", EntryPoint = "glResetMinmaxEXT")]
            public static 
            void ResetMinmax(OpenTK.Graphics.OpenGL.ExtHistogram target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResetMinmaxEXT((OpenTK.Graphics.OpenGL.ExtHistogram)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_multisample]</summary>
            [AutoGenerated(Category = "EXT_multisample", 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
            }

            /// <summary>[requires: EXT_multisample]</summary>
            [AutoGenerated(Category = "EXT_multisample", Version = "1.0", EntryPoint = "glSamplePatternEXT")]
            public static 
            void SamplePattern(OpenTK.Graphics.OpenGL.ExtMultisample pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSamplePatternEXT((OpenTK.Graphics.OpenGL.ExtMultisample)pattern);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", 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>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColorPointerEXT((Int32)size, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_secondary_color]
        /// 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 = "EXT_secondary_color", Version = "1.1", EntryPoint = "glSecondaryColorPointerEXT")]
            public static 
            void SecondaryColorPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr row, IntPtr column)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSeparableFilter2DEXT((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row, (IntPtr)column);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] row, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_convolution]
        /// 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 = "EXT_convolution", Version = "1.0", EntryPoint = "glSeparableFilter2DEXT")]
            public static 
            void SeparableFilter2D<T6,T7>(OpenTK.Graphics.OpenGL.ExtConvolution target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] ref T6 row, [InAttribute, OutAttribute] ref 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((OpenTK.Graphics.OpenGL.ExtConvolution)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)row_ptr.AddrOfPinnedObject(), (IntPtr)column_ptr.AddrOfPinnedObject());
                    row = (T6)row_ptr.Target;
                    column = (T7)column_ptr.Target;
                }
                finally
                {
                    row_ptr.Free();
                    column_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetInvariantEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T2)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetInvariantEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetInvariantEXT")]
            public static 
            void SetInvariant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T2)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetLocalConstantEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T2)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetLocalConstantEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSetLocalConstantEXT")]
            public static 
            void SetLocalConstant<T2>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T2)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp1EXT")]
            public static 
            void ShaderOp1(OpenTK.Graphics.OpenGL.ExtVertexShader op, Int32 res, Int32 arg1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp1EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp1EXT")]
            public static 
            void ShaderOp1(OpenTK.Graphics.OpenGL.ExtVertexShader op, UInt32 res, UInt32 arg1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp1EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp2EXT")]
            public static 
            void ShaderOp2(OpenTK.Graphics.OpenGL.ExtVertexShader op, Int32 res, Int32 arg1, Int32 arg2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp2EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp2EXT")]
            public static 
            void ShaderOp2(OpenTK.Graphics.OpenGL.ExtVertexShader op, UInt32 res, UInt32 arg1, UInt32 arg2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp2EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp3EXT")]
            public static 
            void ShaderOp3(OpenTK.Graphics.OpenGL.ExtVertexShader op, Int32 res, Int32 arg1, Int32 arg2, Int32 arg3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp3EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2, (UInt32)arg3);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glShaderOp3EXT")]
            public static 
            void ShaderOp3(OpenTK.Graphics.OpenGL.ExtVertexShader op, UInt32 res, UInt32 arg1, UInt32 arg2, UInt32 arg3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glShaderOp3EXT((OpenTK.Graphics.OpenGL.ExtVertexShader)op, (UInt32)res, (UInt32)arg1, (UInt32)arg2, (UInt32)arg3);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_stencil_clear_tag]</summary>
            [AutoGenerated(Category = "EXT_stencil_clear_tag", 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
            }

            /// <summary>[requires: EXT_stencil_clear_tag]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_stencil_clear_tag", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSwizzleEXT")]
            public static 
            void Swizzle(Int32 res, Int32 @in, OpenTK.Graphics.OpenGL.ExtVertexShader outX, OpenTK.Graphics.OpenGL.ExtVertexShader outY, OpenTK.Graphics.OpenGL.ExtVertexShader outZ, OpenTK.Graphics.OpenGL.ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSwizzleEXT((UInt32)res, (UInt32)@in, (OpenTK.Graphics.OpenGL.ExtVertexShader)outX, (OpenTK.Graphics.OpenGL.ExtVertexShader)outY, (OpenTK.Graphics.OpenGL.ExtVertexShader)outZ, (OpenTK.Graphics.OpenGL.ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glSwizzleEXT")]
            public static 
            void Swizzle(UInt32 res, UInt32 @in, OpenTK.Graphics.OpenGL.ExtVertexShader outX, OpenTK.Graphics.OpenGL.ExtVertexShader outY, OpenTK.Graphics.OpenGL.ExtVertexShader outZ, OpenTK.Graphics.OpenGL.ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSwizzleEXT((UInt32)res, (UInt32)@in, (OpenTK.Graphics.OpenGL.ExtVertexShader)outX, (OpenTK.Graphics.OpenGL.ExtVertexShader)outY, (OpenTK.Graphics.OpenGL.ExtVertexShader)outZ, (OpenTK.Graphics.OpenGL.ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_coordinate_frame", 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
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTangentPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glTangentPointerEXT((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_coordinate_frame]</summary>
            [AutoGenerated(Category = "EXT_coordinate_frame", Version = "1.1", EntryPoint = "glTangentPointerEXT")]
            public static 
            void TangentPointer<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_buffer_object]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_texture_buffer_object", Version = "2.0", EntryPoint = "glTexBufferEXT")]
            public static 
            void TexBuffer(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtTextureBufferObject internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture_buffer_object]
        /// Attach the storage for a buffer object to the active buffer texture
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="internalFormat">
        /// <para>
        /// Specifies the internal format of the data in the store belonging to buffer.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// Specifies the name of the buffer object whose storage to attach to the active buffer texture.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_buffer_object", Version = "2.0", EntryPoint = "glTexBufferEXT")]
            public static 
            void TexBuffer(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtTextureBufferObject internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexBufferEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtTextureBufferObject)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointerEXT((Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glTexCoordPointerEXT")]
            public static 
            void TexCoordPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T9[,,] pixels)
                where T9 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture image
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_2D_ARRAY or GL_PROXY_TEXTURE_2D_ARRAY.
        /// </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 one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.
        /// </para>
        /// </param>
        /// <param name="width">
        /// <para>
        /// Specifies the width of the texture image. 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. All implementations support 3D texture images that are at least 256 texels high.
        /// </para>
        /// </param>
        /// <param name="depth">
        /// <para>
        /// Specifies the depth of the texture image, or the number of layers in a texture array. All implementations support 3D texture images that are at least 256 texels deep, and texture arrays that are at least 256 layers deep.
        /// </para>
        /// </param>
        /// <param name="border">
        /// <para>
        /// This value must be 0.
        /// </para>
        /// </param>
        /// <param name="format">
        /// <para>
        /// Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED_INTEGER, GL_RG_INTEGER, GL_RGB_INTEGER, GL_BGR_INTEGER, GL_RGBA_INTEGER, GL_BGRA_INTEGER, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_DEPTH_STENCIL.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexImage3DEXT")]
            public static 
            void TexImage3D<T9>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIivEXT")]
            public static 
            unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterIivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_integer]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_texture_integer", Version = "2.0", EntryPoint = "glTexParameterIuivEXT")]
            public static 
            unsafe void TexParameterI(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterIuivEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T6[,,] pixels)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage1DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage1DEXT")]
            public static 
            void TexSubImage1D<T6>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T6)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T8[,,] pixels)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage2DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_subtexture]
        /// 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, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_1D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_subtexture", Version = "1.0", EntryPoint = "glTexSubImage2DEXT")]
            public static 
            void TexSubImage2D<T8>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T8)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage3DEXT((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_texture3D]
        /// Specify a three-dimensional texture subimage
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target texture. Must be GL_TEXTURE_3D or GL_TEXTURE_2D_ARRAY.
        /// </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_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, GL_DEPTH_COMPONENT, and GL_STENCIL_INDEX.
        /// </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_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 = "EXT_texture3D", Version = "1.0", EntryPoint = "glTexSubImage3DEXT")]
            public static 
            void TexSubImage3D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T10)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureBufferEXT")]
            public static 
            void TextureBuffer(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureBufferEXT")]
            public static 
            void TextureBuffer(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_buffer_range]</summary>
            [AutoGenerated(Category = "ARB_texture_buffer_range", Version = "4.3", EntryPoint = "glTextureBufferRangeEXT")]
            public static 
            void TextureBufferRange(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureBufferRange target, OpenTK.Graphics.OpenGL.ArbTextureBufferRange internalformat, Int32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferRangeEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureBufferRange)target, (OpenTK.Graphics.OpenGL.ArbTextureBufferRange)internalformat, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_buffer_range]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_buffer_range", Version = "4.3", EntryPoint = "glTextureBufferRangeEXT")]
            public static 
            void TextureBufferRange(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureBufferRange target, OpenTK.Graphics.OpenGL.ArbTextureBufferRange internalformat, UInt32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBufferRangeEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureBufferRange)target, (OpenTK.Graphics.OpenGL.ArbTextureBufferRange)internalformat, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T8)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage1DEXT")]
            public static 
            void TextureImage1D<T8>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T8)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage2DEXT")]
            public static 
            void TextureImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T10)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureImage3DEXT")]
            public static 
            void TextureImage3D<T10>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.ExtDirectStateAccess internalformat, Int32 width, Int32 height, Int32 depth, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.ExtDirectStateAccess)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T10)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_light_texture]</summary>
            [AutoGenerated(Category = "EXT_light_texture", Version = "1.1", EntryPoint = "glTextureLightEXT")]
            public static 
            void TextureLight(OpenTK.Graphics.OpenGL.ExtLightTexture pname)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureLightEXT((OpenTK.Graphics.OpenGL.ExtLightTexture)pname);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_light_texture]</summary>
            [AutoGenerated(Category = "EXT_light_texture", Version = "1.1", EntryPoint = "glTextureMaterialEXT")]
            public static 
            void TextureMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureMaterialEXT((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_texture_perturb_normal]</summary>
            [AutoGenerated(Category = "EXT_texture_perturb_normal", Version = "1.1", EntryPoint = "glTextureNormalEXT")]
            public static 
            void TextureNormal(OpenTK.Graphics.OpenGL.ExtTexturePerturbNormal mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureNormalEXT((OpenTK.Graphics.OpenGL.ExtTexturePerturbNormal)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfEXT")]
            public static 
            void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfEXT")]
            public static 
            void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterfvEXT")]
            public static 
            unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterfvEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameteriEXT")]
            public static 
            void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameteriEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameteriEXT")]
            public static 
            void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameteriEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            unsafe void TextureParameterI(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIivEXT")]
            public static 
            unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterIuivEXT")]
            public static 
            unsafe void TextureParameterI(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterIuivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            unsafe void TextureParameter(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureParameterivEXT")]
            public static 
            unsafe void TextureParameter(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.TextureParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureParameterivEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.TextureParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureRenderbufferEXT")]
            public static 
            void TextureRenderbuffer(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRenderbufferEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureRenderbufferEXT")]
            public static 
            void TextureRenderbuffer(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureRenderbufferEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage1DEXT")]
            public static 
            void TextureStorage1D(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage1DEXT")]
            public static 
            void TextureStorage1D(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage2DEXT")]
            public static 
            void TextureStorage2D(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage2DEXT")]
            public static 
            void TextureStorage2D(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage_multisample]</summary>
            [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTextureStorage2DMultisampleEXT")]
            public static 
            void TextureStorage2DMultisample(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample internalformat, Int32 width, Int32 height, bool fixedsamplelocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage2DMultisampleEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)internalformat, (Int32)width, (Int32)height, (bool)fixedsamplelocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTextureStorage2DMultisampleEXT")]
            public static 
            void TextureStorage2DMultisample(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample internalformat, Int32 width, Int32 height, bool fixedsamplelocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage2DMultisampleEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)internalformat, (Int32)width, (Int32)height, (bool)fixedsamplelocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage3DEXT")]
            public static 
            void TextureStorage3D(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width, Int32 height, Int32 depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width, (Int32)height, (Int32)depth);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_storage", Version = "4.2", EntryPoint = "glTextureStorage3DEXT")]
            public static 
            void TextureStorage3D(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorage target, Int32 levels, OpenTK.Graphics.OpenGL.ArbTextureStorage internalformat, Int32 width, Int32 height, Int32 depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorage)target, (Int32)levels, (OpenTK.Graphics.OpenGL.ArbTextureStorage)internalformat, (Int32)width, (Int32)height, (Int32)depth);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage_multisample]</summary>
            [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTextureStorage3DMultisampleEXT")]
            public static 
            void TextureStorage3DMultisample(Int32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage3DMultisampleEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)internalformat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedsamplelocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_texture_storage_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_texture_storage_multisample", Version = "4.3", EntryPoint = "glTextureStorage3DMultisampleEXT")]
            public static 
            void TextureStorage3DMultisample(UInt32 texture, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample target, Int32 samples, OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample internalformat, Int32 width, Int32 height, Int32 depth, bool fixedsamplelocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureStorage3DMultisampleEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)target, (Int32)samples, (OpenTK.Graphics.OpenGL.ArbTextureStorageMultisample)internalformat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedsamplelocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T7)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage1DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage1DEXT")]
            public static 
            void TextureSubImage1D<T7>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T7)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage2DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage2DEXT")]
            public static 
            void TextureSubImage2D<T9>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 width, Int32 height, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)width, (Int32)height, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T9)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(Int32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T11)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureSubImage3DEXT((UInt32)texture, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", Version = "", EntryPoint = "glTextureSubImage3DEXT")]
            public static 
            void TextureSubImage3D<T11>(UInt32 texture, OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 width, Int32 height, Int32 depth, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)width, (Int32)height, (Int32)depth, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T11)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glTransformFeedbackVaryingsEXT")]
            public static 
            void TransformFeedbackVaryings(Int32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsEXT((UInt32)program, (Int32)count, (String[])varyings, (OpenTK.Graphics.OpenGL.ExtTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_transform_feedback", Version = "2.0", EntryPoint = "glTransformFeedbackVaryingsEXT")]
            public static 
            void TransformFeedbackVaryings(UInt32 program, Int32 count, String[] varyings, OpenTK.Graphics.OpenGL.ExtTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsEXT((UInt32)program, (Int32)count, (String[])varyings, (OpenTK.Graphics.OpenGL.ExtTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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
            }

            
        /// <summary>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_gpu_shader4]
        /// 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 = "EXT_gpu_shader4", 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>[requires: EXT_bindable_uniform]</summary>
            [AutoGenerated(Category = "EXT_bindable_uniform", 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
            }

            /// <summary>[requires: EXT_bindable_uniform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_bindable_uniform", 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
            }

            /// <summary>[requires: EXT_compiled_vertex_array]</summary>
            [AutoGenerated(Category = "EXT_compiled_vertex_array", Version = "1.1", EntryPoint = "glUnlockArraysEXT")]
            public static 
            void UnlockArrays()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnlockArraysEXT();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_direct_state_access]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_direct_state_access", 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
            }

            /// <summary>[requires: EXT_separate_shader_objects]</summary>
            [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "1.2", EntryPoint = "glUseShaderProgramEXT")]
            public static 
            void UseShaderProgram(OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects type, Int32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUseShaderProgramEXT((OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects)type, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_separate_shader_objects]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_separate_shader_objects", Version = "1.2", EntryPoint = "glUseShaderProgramEXT")]
            public static 
            void UseShaderProgram(OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects type, UInt32 program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUseShaderProgramEXT((OpenTK.Graphics.OpenGL.ExtSeparateShaderObjects)type, (UInt32)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantPointerEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(Int32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T3)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, IntPtr addr)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVariantPointerEXT((UInt32)id, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glVariantPointerEXT")]
            public static 
            void VariantPointer<T3>(UInt32 id, OpenTK.Graphics.OpenGL.ExtVertexShader type, UInt32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexShader)type, (UInt32)stride, (IntPtr)addr_ptr.AddrOfPinnedObject());
                    addr = (T3)addr_ptr.Target;
                }
                finally
                {
                    addr_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", 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
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayBindVertexBufferEXT")]
            public static 
            void VertexArrayBindVertexBuffer(Int32 vaobj, Int32 bindingindex, Int32 buffer, IntPtr offset, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayBindVertexBufferEXT((UInt32)vaobj, (UInt32)bindingindex, (UInt32)buffer, (IntPtr)offset, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayBindVertexBufferEXT")]
            public static 
            void VertexArrayBindVertexBuffer(UInt32 vaobj, UInt32 bindingindex, UInt32 buffer, IntPtr offset, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayBindVertexBufferEXT((UInt32)vaobj, (UInt32)bindingindex, (UInt32)buffer, (IntPtr)offset, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribBindingEXT")]
            public static 
            void VertexArrayVertexAttribBinding(Int32 vaobj, Int32 attribindex, Int32 bindingindex)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribBindingEXT((UInt32)vaobj, (UInt32)attribindex, (UInt32)bindingindex);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribBindingEXT")]
            public static 
            void VertexArrayVertexAttribBinding(UInt32 vaobj, UInt32 attribindex, UInt32 bindingindex)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribBindingEXT((UInt32)vaobj, (UInt32)attribindex, (UInt32)bindingindex);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribFormatEXT")]
            public static 
            void VertexArrayVertexAttribFormat(Int32 vaobj, Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, bool normalized, Int32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (bool)normalized, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribFormatEXT")]
            public static 
            void VertexArrayVertexAttribFormat(UInt32 vaobj, UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, bool normalized, UInt32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (bool)normalized, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribIFormatEXT")]
            public static 
            void VertexArrayVertexAttribIFormat(Int32 vaobj, Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, Int32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribIFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribIFormatEXT")]
            public static 
            void VertexArrayVertexAttribIFormat(UInt32 vaobj, UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, UInt32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribIFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribLFormatEXT")]
            public static 
            void VertexArrayVertexAttribLFormat(Int32 vaobj, Int32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, Int32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribLFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexAttribLFormatEXT")]
            public static 
            void VertexArrayVertexAttribLFormat(UInt32 vaobj, UInt32 attribindex, Int32 size, OpenTK.Graphics.OpenGL.ArbVertexAttribBinding type, UInt32 relativeoffset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribLFormatEXT((UInt32)vaobj, (UInt32)attribindex, (Int32)size, (OpenTK.Graphics.OpenGL.ArbVertexAttribBinding)type, (UInt32)relativeoffset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexArrayVertexAttribLOffsetEXT")]
            public static 
            void VertexArrayVertexAttribLOffset(Int32 vaobj, Int32 buffer, Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribLOffsetEXT((UInt32)vaobj, (UInt32)buffer, (UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexArrayVertexAttribLOffsetEXT")]
            public static 
            void VertexArrayVertexAttribLOffset(UInt32 vaobj, UInt32 buffer, UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexAttribLOffsetEXT((UInt32)vaobj, (UInt32)buffer, (UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexBindingDivisorEXT")]
            public static 
            void VertexArrayVertexBindingDivisor(Int32 vaobj, Int32 bindingindex, Int32 divisor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexBindingDivisorEXT((UInt32)vaobj, (UInt32)bindingindex, (UInt32)divisor);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: ARB_vertex_attrib_binding]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "ARB_vertex_attrib_binding", Version = "4.3", EntryPoint = "glVertexArrayVertexBindingDivisorEXT")]
            public static 
            void VertexArrayVertexBindingDivisor(UInt32 vaobj, UInt32 bindingindex, UInt32 divisor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexArrayVertexBindingDivisorEXT((UInt32)vaobj, (UInt32)bindingindex, (UInt32)divisor);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", 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
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program4", Version = "", EntryPoint = "glVertexAttribIPointerEXT")]
            public static 
            void VertexAttribIPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexProgram4 type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram4)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dEXT")]
            public static 
            void VertexAttribL1(Int32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1dEXT((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dEXT")]
            public static 
            void VertexAttribL1(UInt32 index, Double x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1dEXT((UInt32)index, (Double)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dvEXT")]
            public static 
            unsafe void VertexAttribL1(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1dvEXT")]
            public static 
            unsafe void VertexAttribL1(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dEXT")]
            public static 
            void VertexAttribL2(Int32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2dEXT((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dEXT")]
            public static 
            void VertexAttribL2(UInt32 index, Double x, Double y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2dEXT((UInt32)index, (Double)x, (Double)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            void VertexAttribL2(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            void VertexAttribL2(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            unsafe void VertexAttribL2(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            void VertexAttribL2(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            void VertexAttribL2(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2dvEXT")]
            public static 
            unsafe void VertexAttribL2(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dEXT")]
            public static 
            void VertexAttribL3(Int32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3dEXT((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dEXT")]
            public static 
            void VertexAttribL3(UInt32 index, Double x, Double y, Double z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3dEXT((UInt32)index, (Double)x, (Double)y, (Double)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            void VertexAttribL3(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            void VertexAttribL3(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            unsafe void VertexAttribL3(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            void VertexAttribL3(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            void VertexAttribL3(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3dvEXT")]
            public static 
            unsafe void VertexAttribL3(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dEXT")]
            public static 
            void VertexAttribL4(Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4dEXT((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dEXT")]
            public static 
            void VertexAttribL4(UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4dEXT((UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            void VertexAttribL4(Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            void VertexAttribL4(Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            unsafe void VertexAttribL4(Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            void VertexAttribL4(UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            void VertexAttribL4(UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4dvEXT")]
            public static 
            unsafe void VertexAttribL4(UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4dvEXT((UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] T4[,,] pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_attrib_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_attrib_64bit", Version = "4.1", EntryPoint = "glVertexAttribLPointerEXT")]
            public static 
            void VertexAttribLPointer<T4>(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit type, Int32 stride, [InAttribute, OutAttribute] ref T4 pointer)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glVertexAttribLPointerEXT((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexAttrib64bit)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointerEXT((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: EXT_vertex_array]
        /// 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 = "EXT_vertex_array", Version = "1.0", EntryPoint = "glVertexPointerEXT")]
            public static 
            void VertexPointer<T4>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, Int32 count, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (Int32)count, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", 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
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_weighting", 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
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeightPointerEXT((Int32)size, (OpenTK.Graphics.OpenGL.ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_weighting]</summary>
            [AutoGenerated(Category = "EXT_vertex_weighting", Version = "1.1", EntryPoint = "glVertexWeightPointerEXT")]
            public static 
            void VertexWeightPointer<T3>(Int32 size, OpenTK.Graphics.OpenGL.ExtVertexWeighting type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ExtVertexWeighting)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glWriteMaskEXT")]
            public static 
            void WriteMask(Int32 res, Int32 @in, OpenTK.Graphics.OpenGL.ExtVertexShader outX, OpenTK.Graphics.OpenGL.ExtVertexShader outY, OpenTK.Graphics.OpenGL.ExtVertexShader outZ, OpenTK.Graphics.OpenGL.ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWriteMaskEXT((UInt32)res, (UInt32)@in, (OpenTK.Graphics.OpenGL.ExtVertexShader)outX, (OpenTK.Graphics.OpenGL.ExtVertexShader)outY, (OpenTK.Graphics.OpenGL.ExtVertexShader)outZ, (OpenTK.Graphics.OpenGL.ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: EXT_vertex_shader]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "EXT_vertex_shader", Version = "1.2", EntryPoint = "glWriteMaskEXT")]
            public static 
            void WriteMask(UInt32 res, UInt32 @in, OpenTK.Graphics.OpenGL.ExtVertexShader outX, OpenTK.Graphics.OpenGL.ExtVertexShader outY, OpenTK.Graphics.OpenGL.ExtVertexShader outZ, OpenTK.Graphics.OpenGL.ExtVertexShader outW)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWriteMaskEXT((UInt32)res, (UInt32)@in, (OpenTK.Graphics.OpenGL.ExtVertexShader)outX, (OpenTK.Graphics.OpenGL.ExtVertexShader)outY, (OpenTK.Graphics.OpenGL.ExtVertexShader)outZ, (OpenTK.Graphics.OpenGL.ExtVertexShader)outW);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Gremedy
        {
            /// <summary>[requires: GREMEDY_frame_terminator]</summary>
            [AutoGenerated(Category = "GREMEDY_frame_terminator", Version = "1.0", EntryPoint = "glFrameTerminatorGREMEDY")]
            public static 
            void FrameTerminator()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFrameTerminatorGREMEDY();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: GREMEDY_string_marker]</summary>
            [AutoGenerated(Category = "GREMEDY_string_marker", 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
            }

            /// <summary>[requires: GREMEDY_string_marker]</summary>
            [AutoGenerated(Category = "GREMEDY_string_marker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: GREMEDY_string_marker]</summary>
            [AutoGenerated(Category = "GREMEDY_string_marker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: GREMEDY_string_marker]</summary>
            [AutoGenerated(Category = "GREMEDY_string_marker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: GREMEDY_string_marker]</summary>
            [AutoGenerated(Category = "GREMEDY_string_marker", Version = "1.0", EntryPoint = "glStringMarkerGREMEDY")]
            public static 
            void StringMarker<T1>(Int32 len, [InAttribute, OutAttribute] 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());
                    @string = (T1)@string_ptr.Target;
                }
                finally
                {
                    @string_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class HP
        {
            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetImageTransformParameterfvHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetImageTransformParameterfvHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterfvHP")]
            public static 
            unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetImageTransformParameterfvHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetImageTransformParameterivHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetImageTransformParameterivHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glGetImageTransformParameterivHP")]
            public static 
            unsafe void GetImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetImageTransformParameterivHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameterfHP")]
            public static 
            void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterfHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameterfvHP")]
            public static 
            void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glImageTransformParameterfvHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameterfvHP")]
            public static 
            unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterfvHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameteriHP")]
            public static 
            void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameteriHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameterivHP")]
            public static 
            void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glImageTransformParameterivHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: HP_image_transform]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "HP_image_transform", Version = "1.1", EntryPoint = "glImageTransformParameterivHP")]
            public static 
            unsafe void ImageTransformParameter(OpenTK.Graphics.OpenGL.HpImageTransform target, OpenTK.Graphics.OpenGL.HpImageTransform pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glImageTransformParameterivHP((OpenTK.Graphics.OpenGL.HpImageTransform)target, (OpenTK.Graphics.OpenGL.HpImageTransform)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Ibm
        {
            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointerListIBM((Int32)size, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glColorPointerListIBM")]
            public static 
            void ColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.ColorPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.ColorPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", 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
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", 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
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_vertex_array_lists", 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
            }

            /// <summary>[requires: IBM_static_data]</summary>
            [AutoGenerated(Category = "IBM_static_data", Version = "1.0", EntryPoint = "glFlushStaticDataIBM")]
            public static 
            void FlushStaticData(OpenTK.Graphics.OpenGL.IbmStaticData target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushStaticDataIBM((OpenTK.Graphics.OpenGL.IbmStaticData)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordPointerListIBM((OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glFogCoordPointerListIBM")]
            public static 
            void FogCoordPointerList<T2>(OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexPointerListIBM((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glIndexPointerListIBM")]
            public static 
            void IndexPointerList<T2>(OpenTK.Graphics.OpenGL.IndexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.IndexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            void MultiModeDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] first, Int32[] count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* first_ptr = first)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiModeDrawArraysIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            void MultiModeDrawArrays(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 first, ref Int32 count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* first_ptr = &first)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiModeDrawArraysIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)first_ptr, (Int32*)count_ptr, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawArraysIBM")]
            public static 
            unsafe void MultiModeDrawArrays(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* first, Int32* count, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiModeDrawArraysIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)first, (Int32*)count, (Int32)primcount, (Int32)modestride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType[] mode, Int32[] count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = mode)
                    fixed (Int32* count_ptr = count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                            indices = (T3)indices_ptr.Target;
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] T3[,,] indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            void MultiModeDrawElements<T3>(ref OpenTK.Graphics.OpenGL.PrimitiveType mode, ref Int32 count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] ref T3 indices, Int32 primcount, Int32 modestride)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (OpenTK.Graphics.OpenGL.PrimitiveType* mode_ptr = &mode)
                    fixed (Int32* count_ptr = &count)
                    {
                        GCHandle indices_ptr = GCHandle.Alloc(indices, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode_ptr, (Int32*)count_ptr, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                            indices = (T3)indices_ptr.Target;
                        }
                        finally
                        {
                            indices_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, IntPtr indices, Int32 primcount, Int32 modestride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiModeDrawElementsIBM((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices, (Int32)primcount, (Int32)modestride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_multimode_draw_arrays]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "IBM_multimode_draw_arrays", Version = "1.1", EntryPoint = "glMultiModeDrawElementsIBM")]
            public static 
            unsafe void MultiModeDrawElements<T3>(OpenTK.Graphics.OpenGL.PrimitiveType* mode, Int32* count, OpenTK.Graphics.OpenGL.DrawElementsType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.PrimitiveType*)mode, (Int32*)count, (OpenTK.Graphics.OpenGL.DrawElementsType)type, (IntPtr)indices_ptr.AddrOfPinnedObject(), (Int32)primcount, (Int32)modestride);
                    indices = (T3)indices_ptr.Target;
                }
                finally
                {
                    indices_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointerListIBM((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glNormalPointerListIBM")]
            public static 
            void NormalPointerList<T2>(OpenTK.Graphics.OpenGL.NormalPointerType type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColorPointerListIBM((Int32)size, (OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glSecondaryColorPointerListIBM")]
            public static 
            void SecondaryColorPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.IbmVertexArrayLists type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.IbmVertexArrayLists)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointerListIBM((Int32)size, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glTexCoordPointerListIBM")]
            public static 
            void TexCoordPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.TexCoordPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.TexCoordPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, IntPtr pointer, Int32 ptrstride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointerListIBM((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer, (Int32)ptrstride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: IBM_vertex_array_lists]</summary>
            [AutoGenerated(Category = "IBM_vertex_array_lists", Version = "1.1", EntryPoint = "glVertexPointerListIBM")]
            public static 
            void VertexPointerList<T3>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject(), (Int32)ptrstride);
                    pointer = (T3)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Ingr
        {
            
        /// <summary>[requires: INGR_blend_func_separate]
        /// Specify pixel arithmetic for RGB and alpha components separately
        /// </summary>
        /// <param name="buf">
        /// <para>
        /// For glBlendFuncSeparatei, specifies the index of the draw buffer for which to set the blend functions.
        /// </para>
        /// </param>
        /// <param name="srcRGB">
        /// <para>
        /// Specifies how the red, green, and blue blending factors are computed. 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 initial value is GL_ZERO.
        /// </para>
        /// </param>
        /// <param name="srcAlpha">
        /// <para>
        /// Specified how the alpha source blending factor is computed. The initial value is GL_ONE.
        /// </para>
        /// </param>
        /// <param name="dstAlpha">
        /// <para>
        /// Specified how the alpha destination blending factor is computed. The initial value is GL_ZERO.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "INGR_blend_func_separate", Version = "1.0", EntryPoint = "glBlendFuncSeparateINGR")]
            public static 
            void BlendFuncSeparate(OpenTK.Graphics.OpenGL.All sfactorRGB, OpenTK.Graphics.OpenGL.All dfactorRGB, OpenTK.Graphics.OpenGL.All sfactorAlpha, OpenTK.Graphics.OpenGL.All dfactorAlpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendFuncSeparateINGR((OpenTK.Graphics.OpenGL.All)sfactorRGB, (OpenTK.Graphics.OpenGL.All)dfactorRGB, (OpenTK.Graphics.OpenGL.All)sfactorAlpha, (OpenTK.Graphics.OpenGL.All)dfactorAlpha);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Intel
        {
            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorPointervINTEL((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glColorPointervINTEL")]
            public static 
            void ColorPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glMapTexture2DINTEL")]
            public static 
            IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, ref Int32 stride, ref OpenTK.Graphics.OpenGL.IntelMapTexture layout)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* stride_ptr = &stride)
                    fixed (OpenTK.Graphics.OpenGL.IntelMapTexture* layout_ptr = &layout)
                    {
                        return Delegates.glMapTexture2DINTEL((UInt32)texture, (Int32)level, (UInt32)access, (Int32*)stride_ptr, (OpenTK.Graphics.OpenGL.IntelMapTexture*)layout_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glMapTexture2DINTEL")]
            public static 
            unsafe IntPtr MapTexture2D(Int32 texture, Int32 level, Int32 access, Int32* stride, OpenTK.Graphics.OpenGL.IntelMapTexture* layout)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapTexture2DINTEL((UInt32)texture, (Int32)level, (UInt32)access, (Int32*)stride, (OpenTK.Graphics.OpenGL.IntelMapTexture*)layout);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glMapTexture2DINTEL")]
            public static 
            IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, ref Int32 stride, ref OpenTK.Graphics.OpenGL.IntelMapTexture layout)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* stride_ptr = &stride)
                    fixed (OpenTK.Graphics.OpenGL.IntelMapTexture* layout_ptr = &layout)
                    {
                        return Delegates.glMapTexture2DINTEL((UInt32)texture, (Int32)level, (UInt32)access, (Int32*)stride_ptr, (OpenTK.Graphics.OpenGL.IntelMapTexture*)layout_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glMapTexture2DINTEL")]
            public static 
            unsafe IntPtr MapTexture2D(UInt32 texture, Int32 level, UInt32 access, Int32* stride, OpenTK.Graphics.OpenGL.IntelMapTexture* layout)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glMapTexture2DINTEL((UInt32)texture, (Int32)level, (UInt32)access, (Int32*)stride, (OpenTK.Graphics.OpenGL.IntelMapTexture*)layout);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer(OpenTK.Graphics.OpenGL.NormalPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalPointervINTEL((OpenTK.Graphics.OpenGL.NormalPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((OpenTK.Graphics.OpenGL.NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((OpenTK.Graphics.OpenGL.NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] T1[,,] pointer)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glNormalPointervINTEL((OpenTK.Graphics.OpenGL.NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glNormalPointervINTEL")]
            public static 
            void NormalPointer<T1>(OpenTK.Graphics.OpenGL.NormalPointerType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NormalPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glSyncTextureINTEL")]
            public static 
            void SyncTexture(Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSyncTextureINTEL((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glSyncTextureINTEL")]
            public static 
            void SyncTexture(UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSyncTextureINTEL((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordPointervINTEL((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glTexCoordPointervINTEL")]
            public static 
            void TexCoordPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glUnmapTexture2DINTEL")]
            public static 
            void UnmapTexture2D(Int32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnmapTexture2DINTEL((UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: INTEL_map_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "INTEL_map_texture", Version = "4.3", EntryPoint = "glUnmapTexture2DINTEL")]
            public static 
            void UnmapTexture2D(UInt32 texture, Int32 level)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUnmapTexture2DINTEL((UInt32)texture, (Int32)level);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexPointervINTEL((Int32)size, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: INTEL_parallel_arrays]
        /// 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 = "INTEL_parallel_arrays", Version = "1.1", EntryPoint = "glVertexPointervINTEL")]
            public static 
            void VertexPointer<T2>(Int32 size, OpenTK.Graphics.OpenGL.VertexPointerType type, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexPointerType)type, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Mesa
        {
            /// <summary>[requires: MESA_resize_buffers]</summary>
            [AutoGenerated(Category = "MESA_resize_buffers", Version = "1.0", EntryPoint = "glResizeBuffersMESA")]
            public static 
            void ResizeBuffers()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResizeBuffersMESA();
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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
            }

            
        /// <summary>[requires: MESA_window_pos]
        /// 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 = "MESA_window_pos", 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
            }

        }

        public static partial class NV
        {
            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", 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
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, Int32[] programs, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, ref Int32 programs, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            unsafe bool AreProgramsResident(Int32 n, Int32* programs, [OutAttribute] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, UInt32[] programs, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            bool AreProgramsResident(Int32 n, ref UInt32 programs, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glAreProgramsResidentNV")]
            public static 
            unsafe bool AreProgramsResident(Int32 n, UInt32* programs, [OutAttribute] bool* residences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glAreProgramsResidentNV((Int32)n, (UInt32*)programs, (bool*)residences);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_conditional_render]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_conditional_render", Version = "", EntryPoint = "glBeginConditionalRenderNV")]
            public static 
            void BeginConditionalRender(Int32 id, OpenTK.Graphics.OpenGL.NvConditionalRender mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvConditionalRender)mode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_conditional_render]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_conditional_render", Version = "", EntryPoint = "glBeginConditionalRenderNV")]
            public static 
            void BeginConditionalRender(UInt32 id, OpenTK.Graphics.OpenGL.NvConditionalRender mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvConditionalRender)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Start transform feedback operation
        /// </summary>
        /// <param name="primitiveMode">
        /// <para>
        /// Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBeginTransformFeedbackNV")]
            public static 
            void BeginTransformFeedback(OpenTK.Graphics.OpenGL.NvTransformFeedback primitiveMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginTransformFeedbackNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)primitiveMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBeginVideoCaptureNV")]
            public static 
            void BeginVideoCapture(Int32 video_capture_slot)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginVideoCaptureNV((UInt32)video_capture_slot);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBeginVideoCaptureNV")]
            public static 
            void BeginVideoCapture(UInt32 video_capture_slot)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginVideoCaptureNV((UInt32)video_capture_slot);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferBaseNV")]
            public static 
            void BindBufferBase(OpenTK.Graphics.OpenGL.NvTransformFeedback target, Int32 index, Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Bind a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferBaseNV")]
            public static 
            void BindBufferBase(OpenTK.Graphics.OpenGL.NvTransformFeedback target, UInt32 index, UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferBaseNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferOffsetNV")]
            public static 
            void BindBufferOffset(OpenTK.Graphics.OpenGL.NvTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferOffsetNV")]
            public static 
            void BindBufferOffset(OpenTK.Graphics.OpenGL.NvTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferOffsetNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferRangeNV")]
            public static 
            void BindBufferRange(OpenTK.Graphics.OpenGL.NvTransformFeedback target, Int32 index, Int32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Bind a range within a buffer object to an indexed buffer target
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specify the target of the bind operation. target must be one of GL_ATOMIC_COUNTER_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER, or GL_SHADER_STORAGE_BUFFER.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specify the index of the binding point within the array specified by target.
        /// </para>
        /// </param>
        /// <param name="buffer">
        /// <para>
        /// The name of a buffer object to bind to the specified binding point.
        /// </para>
        /// </param>
        /// <param name="offset">
        /// <para>
        /// The starting offset in basic machine units into the buffer object buffer.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The amount of data in machine units that can be read from the buffet object while used as an indexed target.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glBindBufferRangeNV")]
            public static 
            void BindBufferRange(OpenTK.Graphics.OpenGL.NvTransformFeedback target, UInt32 index, UInt32 buffer, IntPtr offset, IntPtr size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindBufferRangeNV((OpenTK.Graphics.OpenGL.NvTransformFeedback)target, (UInt32)index, (UInt32)buffer, (IntPtr)offset, (IntPtr)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glBindProgramNV")]
            public static 
            void BindProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glBindProgramNV")]
            public static 
            void BindProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Bind a transform feedback object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which to bind the transform feedback object id. target must be GL_TRANSFORM_FEEDBACK.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object reserved by glGenTransformFeedbacks.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glBindTransformFeedbackNV")]
            public static 
            void BindTransformFeedback(OpenTK.Graphics.OpenGL.NvTransformFeedback2 target, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTransformFeedbackNV((OpenTK.Graphics.OpenGL.NvTransformFeedback2)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Bind a transform feedback object
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies the target to which to bind the transform feedback object id. target must be GL_TRANSFORM_FEEDBACK.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object reserved by glGenTransformFeedbacks.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glBindTransformFeedbackNV")]
            public static 
            void BindTransformFeedback(OpenTK.Graphics.OpenGL.NvTransformFeedback2 target, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindTransformFeedbackNV((OpenTK.Graphics.OpenGL.NvTransformFeedback2)target, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBindVideoCaptureStreamBufferNV")]
            public static 
            void BindVideoCaptureStreamBuffer(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture frame_region, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVideoCaptureStreamBufferNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)frame_region, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBindVideoCaptureStreamBufferNV")]
            public static 
            void BindVideoCaptureStreamBuffer(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture frame_region, IntPtr offset)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVideoCaptureStreamBufferNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)frame_region, (IntPtr)offset);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBindVideoCaptureStreamTextureNV")]
            public static 
            void BindVideoCaptureStreamTexture(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture frame_region, OpenTK.Graphics.OpenGL.NvVideoCapture target, Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVideoCaptureStreamTextureNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)frame_region, (OpenTK.Graphics.OpenGL.NvVideoCapture)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glBindVideoCaptureStreamTextureNV")]
            public static 
            void BindVideoCaptureStreamTexture(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture frame_region, OpenTK.Graphics.OpenGL.NvVideoCapture target, UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBindVideoCaptureStreamTextureNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)frame_region, (OpenTK.Graphics.OpenGL.NvVideoCapture)target, (UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glBufferAddressRangeNV")]
            public static 
            void BufferAddressRange(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory pname, Int32 index, Int64 address, IntPtr length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferAddressRangeNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)pname, (UInt32)index, (UInt64)address, (IntPtr)length);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glBufferAddressRangeNV")]
            public static 
            void BufferAddressRange(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory pname, UInt32 index, UInt64 address, IntPtr length)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBufferAddressRangeNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)pname, (UInt32)index, (UInt64)address, (IntPtr)length);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_depth_buffer_float]
        /// 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 = "NV_depth_buffer_float", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor3hNV")]
            public static 
            void Color3h(Half red, Half green, Half blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3hNV((Half)red, (Half)green, (Half)blue);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            void Color3h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glColor3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            void Color3h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glColor3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor3hvNV")]
            public static 
            unsafe void Color3h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor4hNV")]
            public static 
            void Color4h(Half red, Half green, Half blue, Half alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4hNV((Half)red, (Half)green, (Half)blue, (Half)alpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            void Color4h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glColor4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            void Color4h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glColor4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glColor4hvNV")]
            public static 
            unsafe void Color4h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glColorFormatNV")]
            public static 
            void ColorFormat(Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorFormatNV((Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerInputNV")]
            public static 
            void CombinerInput(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners input, OpenTK.Graphics.OpenGL.NvRegisterCombiners mapping, OpenTK.Graphics.OpenGL.NvRegisterCombiners componentUsage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerInputNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)input, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)mapping, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)componentUsage);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerOutputNV")]
            public static 
            void CombinerOutput(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners abOutput, OpenTK.Graphics.OpenGL.NvRegisterCombiners cdOutput, OpenTK.Graphics.OpenGL.NvRegisterCombiners sumOutput, OpenTK.Graphics.OpenGL.NvRegisterCombiners scale, OpenTK.Graphics.OpenGL.NvRegisterCombiners bias, bool abDotProduct, bool cdDotProduct, bool muxSum)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerOutputNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)abOutput, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)cdOutput, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)sumOutput, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)scale, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)bias, (bool)abDotProduct, (bool)cdDotProduct, (bool)muxSum);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameterfNV")]
            public static 
            void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterfNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameterfvNV")]
            public static 
            void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCombinerParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameterfvNV")]
            public static 
            unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameteriNV")]
            public static 
            void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameteriNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameterivNV")]
            public static 
            void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glCombinerParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glCombinerParameterivNV")]
            public static 
            unsafe void CombinerParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glCombinerStageParameterfvNV")]
            public static 
            unsafe void CombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_copy_image]
        /// Perform a raw data copy between two images
        /// </summary>
        /// <param name="srcName">
        /// <para>
        /// The name of a texture or renderbuffer object from which to copy.
        /// </para>
        /// </param>
        /// <param name="srcTarget">
        /// <para>
        /// The target representing the namespace of the source name srcName.
        /// </para>
        /// </param>
        /// <param name="srcLevel">
        /// <para>
        /// The mipmap level to read from the source.
        /// </para>
        /// </param>
        /// <param name="srcX">
        /// <para>
        /// The X coordinate of the left edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcY">
        /// <para>
        /// The Y coordinate of the top edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcZ">
        /// <para>
        /// The Z coordinate of the near edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="dstName">
        /// <para>
        /// The name of a texture or renderbuffer object to which to copy.
        /// </para>
        /// </param>
        /// <param name="dstTarget">
        /// <para>
        /// The target representing the namespace of the destination name dstName.
        /// </para>
        /// </param>
        /// <param name="dstX">
        /// <para>
        /// The X coordinate of the left edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstY">
        /// <para>
        /// The Y coordinate of the top edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstZ">
        /// <para>
        /// The Z coordinate of the near edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="srcWidth">
        /// <para>
        /// The width of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcHeight">
        /// <para>
        /// The height of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcDepth">
        /// <para>
        /// The depth of the region to be copied.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_copy_image", Version = "1.2", EntryPoint = "glCopyImageSubDataNV")]
            public static 
            void CopyImageSubData(Int32 srcName, OpenTK.Graphics.OpenGL.NvCopyImage srcTarget, Int32 srcLevel, Int32 srcX, Int32 srcY, Int32 srcZ, Int32 dstName, OpenTK.Graphics.OpenGL.NvCopyImage dstTarget, Int32 dstLevel, Int32 dstX, Int32 dstY, Int32 dstZ, Int32 width, Int32 height, Int32 depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyImageSubDataNV((UInt32)srcName, (OpenTK.Graphics.OpenGL.NvCopyImage)srcTarget, (Int32)srcLevel, (Int32)srcX, (Int32)srcY, (Int32)srcZ, (UInt32)dstName, (OpenTK.Graphics.OpenGL.NvCopyImage)dstTarget, (Int32)dstLevel, (Int32)dstX, (Int32)dstY, (Int32)dstZ, (Int32)width, (Int32)height, (Int32)depth);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_copy_image]
        /// Perform a raw data copy between two images
        /// </summary>
        /// <param name="srcName">
        /// <para>
        /// The name of a texture or renderbuffer object from which to copy.
        /// </para>
        /// </param>
        /// <param name="srcTarget">
        /// <para>
        /// The target representing the namespace of the source name srcName.
        /// </para>
        /// </param>
        /// <param name="srcLevel">
        /// <para>
        /// The mipmap level to read from the source.
        /// </para>
        /// </param>
        /// <param name="srcX">
        /// <para>
        /// The X coordinate of the left edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcY">
        /// <para>
        /// The Y coordinate of the top edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="srcZ">
        /// <para>
        /// The Z coordinate of the near edge of the souce region to copy.
        /// </para>
        /// </param>
        /// <param name="dstName">
        /// <para>
        /// The name of a texture or renderbuffer object to which to copy.
        /// </para>
        /// </param>
        /// <param name="dstTarget">
        /// <para>
        /// The target representing the namespace of the destination name dstName.
        /// </para>
        /// </param>
        /// <param name="dstX">
        /// <para>
        /// The X coordinate of the left edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstY">
        /// <para>
        /// The Y coordinate of the top edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="dstZ">
        /// <para>
        /// The Z coordinate of the near edge of the destination region.
        /// </para>
        /// </param>
        /// <param name="srcWidth">
        /// <para>
        /// The width of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcHeight">
        /// <para>
        /// The height of the region to be copied.
        /// </para>
        /// </param>
        /// <param name="srcDepth">
        /// <para>
        /// The depth of the region to be copied.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_copy_image", Version = "1.2", EntryPoint = "glCopyImageSubDataNV")]
            public static 
            void CopyImageSubData(UInt32 srcName, OpenTK.Graphics.OpenGL.NvCopyImage srcTarget, Int32 srcLevel, Int32 srcX, Int32 srcY, Int32 srcZ, UInt32 dstName, OpenTK.Graphics.OpenGL.NvCopyImage dstTarget, Int32 dstLevel, Int32 dstX, Int32 dstY, Int32 dstZ, Int32 width, Int32 height, Int32 depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyImageSubDataNV((UInt32)srcName, (OpenTK.Graphics.OpenGL.NvCopyImage)srcTarget, (Int32)srcLevel, (Int32)srcX, (Int32)srcY, (Int32)srcZ, (UInt32)dstName, (OpenTK.Graphics.OpenGL.NvCopyImage)dstTarget, (Int32)dstLevel, (Int32)dstX, (Int32)dstY, (Int32)dstZ, (Int32)width, (Int32)height, (Int32)depth);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCopyPathNV")]
            public static 
            void CopyPath(Int32 resultPath, Int32 srcPath)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyPathNV((UInt32)resultPath, (UInt32)srcPath);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCopyPathNV")]
            public static 
            void CopyPath(UInt32 resultPath, UInt32 srcPath)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyPathNV((UInt32)resultPath, (UInt32)srcPath);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathInstancedNV")]
            public static 
            unsafe void CoverFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathNV")]
            public static 
            void CoverFillPath(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering coverMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverFillPathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverFillPathNV")]
            public static 
            void CoverFillPath(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering coverMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverFillPathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathInstancedNV")]
            public static 
            unsafe void CoverStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering coverMode, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glCoverStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathNV")]
            public static 
            void CoverStrokePath(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering coverMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverStrokePathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glCoverStrokePathNV")]
            public static 
            void CoverStrokePath(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering coverMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCoverStrokePathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)coverMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glDeletePathsNV")]
            public static 
            void DeletePath(Int32 path, Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeletePathsNV((UInt32)path, (Int32)range);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glDeletePathsNV")]
            public static 
            void DeletePath(UInt32 path, Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDeletePathsNV((UInt32)path, (Int32)range);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Deletes a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the program object to be deleted.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_transform_feedback2]</summary>
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_depth_buffer_float]</summary>
            [AutoGenerated(Category = "NV_depth_buffer_float", 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>[requires: NV_depth_buffer_float]
        /// 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 = "NV_depth_buffer_float", 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
            }

            /// <summary>[requires: NV_draw_texture]</summary>
            [AutoGenerated(Category = "NV_draw_texture", Version = "4.3", EntryPoint = "glDrawTextureNV")]
            public static 
            void DrawTexture(Int32 texture, Int32 sampler, Single x0, Single y0, Single x1, Single y1, Single z, Single s0, Single t0, Single s1, Single t1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTextureNV((UInt32)texture, (UInt32)sampler, (Single)x0, (Single)y0, (Single)x1, (Single)y1, (Single)z, (Single)s0, (Single)t0, (Single)s1, (Single)t1);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_draw_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_draw_texture", Version = "4.3", EntryPoint = "glDrawTextureNV")]
            public static 
            void DrawTexture(UInt32 texture, UInt32 sampler, Single x0, Single y0, Single x1, Single y1, Single z, Single s0, Single t0, Single s1, Single t1)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTextureNV((UInt32)texture, (UInt32)sampler, (Single)x0, (Single)y0, (Single)x1, (Single)y1, (Single)z, (Single)s0, (Single)t0, (Single)s1, (Single)t1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Render primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDrawTransformFeedbackNV")]
            public static 
            void DrawTransformFeedback(OpenTK.Graphics.OpenGL.NvTransformFeedback2 mode, Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTransformFeedbackNV((OpenTK.Graphics.OpenGL.NvTransformFeedback2)mode, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Render primitives using a count derived from a transform feedback object
        /// </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_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES are accepted.
        /// </para>
        /// </param>
        /// <param name="id">
        /// <para>
        /// Specifies the name of a transform feedback object from which to retrieve a primitive count.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glDrawTransformFeedbackNV")]
            public static 
            void DrawTransformFeedback(OpenTK.Graphics.OpenGL.NvTransformFeedback2 mode, UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawTransformFeedbackNV((OpenTK.Graphics.OpenGL.NvTransformFeedback2)mode, (UInt32)id);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glEdgeFlagFormatNV")]
            public static 
            void EdgeFlagFormat(Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEdgeFlagFormatNV((Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_conditional_render]</summary>
            [AutoGenerated(Category = "NV_conditional_render", Version = "", EntryPoint = "glEndConditionalRenderNV")]
            public static 
            void EndConditionalRender()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndConditionalRenderNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glEndOcclusionQueryNV")]
            public static 
            void EndOcclusionQuery()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndOcclusionQueryNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glEndTransformFeedbackNV")]
            public static 
            void EndTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glEndVideoCaptureNV")]
            public static 
            void EndVideoCapture(Int32 video_capture_slot)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndVideoCaptureNV((UInt32)video_capture_slot);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glEndVideoCaptureNV")]
            public static 
            void EndVideoCapture(UInt32 video_capture_slot)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndVideoCaptureNV((UInt32)video_capture_slot);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glEvalMapsNV")]
            public static 
            void EvalMap(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalMapsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glExecuteProgramNV")]
            public static 
            unsafe void ExecuteProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glExecuteProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glFinalCombinerInputNV")]
            public static 
            void FinalCombinerInput(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners input, OpenTK.Graphics.OpenGL.NvRegisterCombiners mapping, OpenTK.Graphics.OpenGL.NvRegisterCombiners componentUsage)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinalCombinerInputNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)input, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)mapping, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)componentUsage);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glFlushPixelDataRangeNV")]
            public static 
            void FlushPixelDataRange(OpenTK.Graphics.OpenGL.NvPixelDataRange target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushPixelDataRangeNV((OpenTK.Graphics.OpenGL.NvPixelDataRange)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", Version = "1.1", EntryPoint = "glFlushVertexArrayRangeNV")]
            public static 
            void FlushVertexArrayRange()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushVertexArrayRangeNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glFogCoordFormatNV")]
            public static 
            void FogCoordFormat(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordFormatNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glFogCoordhNV")]
            public static 
            void FogCoordh(Half fog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordhNV((Half)fog);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glFogCoordhvNV")]
            public static 
            unsafe void FogCoordh(Half* fog)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogCoordhvNV((Half*)fog);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            unsafe void GenFences(Int32 n, [OutAttribute] Int32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            void GenFences(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGenFencesNV")]
            public static 
            unsafe void GenFences(Int32 n, [OutAttribute] UInt32* fences)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenFencesNV((Int32)n, (UInt32*)fences);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            unsafe void GenOcclusionQueries(Int32 n, [OutAttribute] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            void GenOcclusionQueries(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGenOcclusionQueriesNV")]
            public static 
            unsafe void GenOcclusionQueries(Int32 n, [OutAttribute] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenOcclusionQueriesNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGenPathsNV")]
            public static 
            Int32 GenPath(Int32 range)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGenPathsNV((Int32)range);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            unsafe void GenProgram(Int32 n, [OutAttribute] Int32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            void GenProgram(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGenProgramsNV")]
            public static 
            unsafe void GenProgram(Int32 n, [OutAttribute] UInt32* programs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenProgramsNV((Int32)n, (UInt32*)programs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            unsafe void GenTransformFeedback(Int32 n, [OutAttribute] Int32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            void GenTransformFeedback(Int32 n, [OutAttribute] 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
            }

            /// <summary>[requires: NV_transform_feedback2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glGenTransformFeedbacksNV")]
            public static 
            unsafe void GenTransformFeedback(Int32 n, [OutAttribute] UInt32* ids)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGenTransformFeedbacksNV((Int32)n, (UInt32*)ids);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.NvTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            unsafe void GetActiveVarying(Int32 program, Int32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.NvTransformFeedback*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 size, [OutAttribute] out OpenTK.Graphics.OpenGL.NvTransformFeedback type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* size_ptr = &size)
                    fixed (OpenTK.Graphics.OpenGL.NvTransformFeedback* type_ptr = &type)
                    {
                        Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length_ptr, (Int32*)size_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback*)type_ptr, (StringBuilder)name);
                        length = *length_ptr;
                        size = *size_ptr;
                        type = *type_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetActiveVaryingNV")]
            public static 
            unsafe void GetActiveVarying(UInt32 program, UInt32 index, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* size, [OutAttribute] OpenTK.Graphics.OpenGL.NvTransformFeedback* type, [OutAttribute] StringBuilder name)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetActiveVaryingNV((UInt32)program, (UInt32)index, (Int32)bufSize, (Int32*)length, (Int32*)size, (OpenTK.Graphics.OpenGL.NvTransformFeedback*)type, (StringBuilder)name);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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_ATOMIC_COUNTER_BUFFER, GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, GL_DRAW_INDIRECT_BUFFER, GL_DISPATCH_INDIRECT_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, GL_PIXEL_UNPACK_BUFFER, GL_QUERY_BUFFER, GL_SHADER_STORAGE_BUFFER, GL_TEXTURE_BUFFER, GL_TRANSFORM_FEEDBACK_BUFFER, or GL_UNIFORM_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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetBufferParameterui64vNV")]
            public static 
            unsafe void GetBufferParameter(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetBufferParameterui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterfvNV")]
            public static 
            unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerInputParameterivNV")]
            public static 
            unsafe void GetCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerOutputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerOutputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterfvNV")]
            public static 
            unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerOutputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerOutputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerOutputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetCombinerOutputParameterivNV")]
            public static 
            unsafe void GetCombinerOutputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners portion, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerOutputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)portion, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners2]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners2", Version = "1.1", EntryPoint = "glGetCombinerStageParameterfvNV")]
            public static 
            unsafe void GetCombinerStageParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners2 stage, OpenTK.Graphics.OpenGL.NvRegisterCombiners2 pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetCombinerStageParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners2)stage, (OpenTK.Graphics.OpenGL.NvRegisterCombiners2)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            unsafe void GetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glGetFenceivNV")]
            public static 
            unsafe void GetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFenceivNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFinalCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFinalCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterfvNV")]
            public static 
            unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFinalCombinerInputParameterfvNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFinalCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFinalCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_register_combiners]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_register_combiners", Version = "1.1", EntryPoint = "glGetFinalCombinerInputParameterivNV")]
            public static 
            unsafe void GetFinalCombinerInputParameter(OpenTK.Graphics.OpenGL.NvRegisterCombiners variable, OpenTK.Graphics.OpenGL.NvRegisterCombiners pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFinalCombinerInputParameterivNV((OpenTK.Graphics.OpenGL.NvRegisterCombiners)variable, (OpenTK.Graphics.OpenGL.NvRegisterCombiners)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetImageHandleNV")]
            public static 
            Int64 GetImageHandle(Int32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.NvBindlessTexture format)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetImageHandleNV((UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.NvBindlessTexture)format);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetImageHandleNV")]
            public static 
            Int64 GetImageHandle(UInt32 texture, Int32 level, bool layered, Int32 layer, OpenTK.Graphics.OpenGL.NvBindlessTexture format)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetImageHandleNV((UInt32)texture, (Int32)level, (bool)layered, (Int32)layer, (OpenTK.Graphics.OpenGL.NvBindlessTexture)format);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] Int64[] result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* result_ptr = result)
                    {
                        Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] out Int64 result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* result_ptr = &result)
                    {
                        Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result_ptr);
                        result = *result_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, Int32 index, [OutAttribute] Int64* result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] UInt64[] result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* result_ptr = result)
                    {
                        Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] out UInt64 result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* result_ptr = &result)
                    {
                        Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result_ptr);
                        result = *result_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glGetIntegerui64i_vNV")]
            public static 
            unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory value, UInt32 index, [OutAttribute] UInt64* result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerui64i_vNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)value, (UInt32)index, (UInt64*)result);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] Int64[] result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* result_ptr = result)
                    {
                        Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] out Int64 result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* result_ptr = &result)
                    {
                        Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result_ptr);
                        result = *result_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] Int64* result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] UInt64[] result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* result_ptr = result)
                    {
                        Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] out UInt64 result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* result_ptr = &result)
                    {
                        Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result_ptr);
                        result = *result_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetIntegerui64vNV")]
            public static 
            unsafe void GetInteger(OpenTK.Graphics.OpenGL.NvShaderBufferLoad value, [OutAttribute] UInt64* result)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetIntegerui64vNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)value, (UInt64*)result);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterfvNV")]
            public static 
            unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapAttribParameterivNV")]
            public static 
            unsafe void GetMapAttribParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapAttribParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute] IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                    points = (T6)points_ptr.Target;
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [OutAttribute] IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] T6[,,] points)
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapControlPointsNV")]
            public static 
            void GetMapControlPoints<T6>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, bool packed, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                    points = (T6)points_ptr.Target;
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterfvNV")]
            public static 
            unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glGetMapParameterivNV")]
            public static 
            unsafe void GetMapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] out Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                        val = *val_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, Int32 index, [OutAttribute] Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] Single[] val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = val)
                    {
                        Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] out Single val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* val_ptr = &val)
                    {
                        Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val_ptr);
                        val = *val_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_explicit_multisample]
        /// Retrieve the location of a sample
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies the sample parameter name. pname must be GL_SAMPLE_POSITION.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the sample whose position to query.
        /// </para>
        /// </param>
        /// <param name="val">
        /// <para>
        /// Specifies the address of an array to receive the position of the sample.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glGetMultisamplefvNV")]
            public static 
            unsafe void GetMultisample(OpenTK.Graphics.OpenGL.NvExplicitMultisample pname, UInt32 index, [OutAttribute] Single* val)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMultisamplefvNV((OpenTK.Graphics.OpenGL.NvExplicitMultisample)pname, (UInt32)index, (Single*)val);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            unsafe void GetNamedBufferParameter(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetNamedBufferParameterui64vNV")]
            public static 
            unsafe void GetNamedBufferParameter(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad pname, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetNamedBufferParameterui64vNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            unsafe void GetOcclusionQuery(Int32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryivNV")]
            public static 
            unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetOcclusionQueryuivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetOcclusionQueryuivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", Version = "1.2", EntryPoint = "glGetOcclusionQueryuivNV")]
            public static 
            unsafe void GetOcclusionQuery(UInt32 id, OpenTK.Graphics.OpenGL.NvOcclusionQuery pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetOcclusionQueryuivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvOcclusionQuery)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenfvNV")]
            public static 
            void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glGetPathColorGenfvNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenfvNV")]
            public static 
            void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glGetPathColorGenfvNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenfvNV")]
            public static 
            unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathColorGenfvNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenivNV")]
            public static 
            void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glGetPathColorGenivNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenivNV")]
            public static 
            void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glGetPathColorGenivNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathColorGenivNV")]
            public static 
            unsafe void GetPathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathColorGenivNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            void GetPathCommands(Int32 path, [OutAttribute] Byte[] commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            void GetPathCommands(Int32 path, [OutAttribute] out Byte commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands_ptr);
                        commands = *commands_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            unsafe void GetPathCommands(Int32 path, [OutAttribute] Byte* commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            void GetPathCommands(UInt32 path, [OutAttribute] Byte[] commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            void GetPathCommands(UInt32 path, [OutAttribute] out Byte commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands_ptr);
                        commands = *commands_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCommandsNV")]
            public static 
            unsafe void GetPathCommands(UInt32 path, [OutAttribute] Byte* commands)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathCommandsNV((UInt32)path, (Byte*)commands);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            void GetPathCoords(Int32 path, [OutAttribute] Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            void GetPathCoords(Int32 path, [OutAttribute] out Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords_ptr);
                        coords = *coords_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            unsafe void GetPathCoords(Int32 path, [OutAttribute] Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            void GetPathCoords(UInt32 path, [OutAttribute] Single[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = coords)
                    {
                        Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            void GetPathCoords(UInt32 path, [OutAttribute] out Single coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coords_ptr = &coords)
                    {
                        Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords_ptr);
                        coords = *coords_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathCoordsNV")]
            public static 
            unsafe void GetPathCoords(UInt32 path, [OutAttribute] Single* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathCoordsNV((UInt32)path, (Single*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            void GetPathDashArray(Int32 path, [OutAttribute] Single[] dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = dashArray)
                    {
                        Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            void GetPathDashArray(Int32 path, [OutAttribute] out Single dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = &dashArray)
                    {
                        Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray_ptr);
                        dashArray = *dashArray_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            unsafe void GetPathDashArray(Int32 path, [OutAttribute] Single* dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            void GetPathDashArray(UInt32 path, [OutAttribute] Single[] dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = dashArray)
                    {
                        Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            void GetPathDashArray(UInt32 path, [OutAttribute] out Single dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = &dashArray)
                    {
                        Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray_ptr);
                        dashArray = *dashArray_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathDashArrayNV")]
            public static 
            unsafe void GetPathDashArray(UInt32 path, [OutAttribute] Single* dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathDashArrayNV((UInt32)path, (Single*)dashArray);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathLengthNV")]
            public static 
            Single GetPathLength(Int32 path, Int32 startSegment, Int32 numSegments)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetPathLengthNV((UInt32)path, (Int32)startSegment, (Int32)numSegments);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathLengthNV")]
            public static 
            Single GetPathLength(UInt32 path, Int32 startSegment, Int32 numSegments)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetPathLengthNV((UInt32)path, (Int32)startSegment, (Int32)numSegments);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single[] metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] out Single metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics_ptr);
                        metrics = *metrics_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            unsafe void GetPathMetricRange(Int32 metricQueryMask, Int32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single* metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single[] metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] out Single metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics_ptr);
                        metrics = *metrics_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricRangeNV")]
            public static 
            unsafe void GetPathMetricRange(UInt32 metricQueryMask, UInt32 firstPathName, Int32 numPaths, Int32 stride, [OutAttribute] Single* metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathMetricRangeNV((UInt32)metricQueryMask, (UInt32)firstPathName, (Int32)numPaths, (Int32)stride, (Single*)metrics);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        metrics = *metrics_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            paths = (T3)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            paths = (T3)paths_ptr.Target;
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(Int32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                    paths = (T3)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        metrics = *metrics_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single[] metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            paths = (T3)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] out Single metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* metrics_ptr = &metrics)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics_ptr);
                            paths = (T3)paths_ptr.Target;
                            metrics = *metrics_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathMetricsNV")]
            public static 
            unsafe void GetPathMetric<T3>(UInt32 metricQueryMask, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Int32 stride, [OutAttribute] Single* metrics)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathMetricsNV((UInt32)metricQueryMask, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)stride, (Single*)metrics);
                    paths = (T3)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterfvNV")]
            public static 
            unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            unsafe void GetPathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathParameterivNV")]
            public static 
            unsafe void GetPathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        returnedSpacing = *returnedSpacing_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        returnedSpacing = *returnedSpacing_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T3[,,] paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            paths = (T3)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            paths = (T3)paths_ptr.Target;
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, Int32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                    paths = (T3)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single[] returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            paths = (T3)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] out Single returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* returnedSpacing_ptr = &returnedSpacing)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing_ptr);
                            paths = (T3)paths_ptr.Target;
                            returnedSpacing = *returnedSpacing_ptr;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathSpacingNV")]
            public static 
            unsafe void GetPathSpacing<T3>(OpenTK.Graphics.OpenGL.NvPathRendering pathListMode, Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T3 paths, UInt32 pathBase, Single advanceScale, Single kerningScale, OpenTK.Graphics.OpenGL.NvPathRendering transformType, [OutAttribute] Single* returnedSpacing)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetPathSpacingNV((OpenTK.Graphics.OpenGL.NvPathRendering)pathListMode, (Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Single)advanceScale, (Single)kerningScale, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)returnedSpacing);
                    paths = (T3)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenfvNV")]
            public static 
            void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glGetPathTexGenfvNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenfvNV")]
            public static 
            void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = &value)
                    {
                        Delegates.glGetPathTexGenfvNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenfvNV")]
            public static 
            unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathTexGenfvNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenivNV")]
            public static 
            void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glGetPathTexGenivNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenivNV")]
            public static 
            void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] out Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = &value)
                    {
                        Delegates.glGetPathTexGenivNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                        value = *value_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glGetPathTexGenivNV")]
            public static 
            unsafe void GetPathTexGen(OpenTK.Graphics.OpenGL.TextureUnit texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering pname, [OutAttribute] Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPathTexGenivNV((OpenTK.Graphics.OpenGL.TextureUnit)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramEnvParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramEnvParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramEnvParameterIuivNV")]
            public static 
            unsafe void GetProgramEnvParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramEnvParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            unsafe void GetProgram(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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_ATOMIC_COUNTER_BUFFERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_BLOCKS, GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_COMPUTE_WORK_GROUP_SIZE GL_PROGRAM_BINARY_LENGTH, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, GL_TRANSFORM_FEEDBACK_VARYINGS, GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH, GL_GEOMETRY_VERTICES_OUT, GL_GEOMETRY_INPUT_TYPE, and GL_GEOMETRY_OUTPUT_TYPE.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested object parameter.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramivNV")]
            public static 
            unsafe void GetProgram(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramivNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetProgramLocalParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramLocalParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glGetProgramLocalParameterIuivNV")]
            public static 
            unsafe void GetProgramLocalParameterI(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramLocalParameterIuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] 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);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] 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);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterdvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterdvNV((UInt32)id, (Int32)len, (Byte*)name, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] 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);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(Int32 id, Int32 len, ref Byte name, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(Int32 id, Int32 len, Byte* name, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] 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);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            void GetProgramNamedParameter(UInt32 id, Int32 len, ref Byte name, [OutAttribute] 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glGetProgramNamedParameterfvNV")]
            public static 
            unsafe void GetProgramNamedParameter(UInt32 id, Int32 len, Byte* name, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramNamedParameterfvNV((UInt32)id, (Int32)len, (Byte*)name, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterdvNV")]
            public static 
            unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterdvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramParameterfvNV")]
            public static 
            unsafe void GetProgramParameter(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramParameterfvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program_ptr);
                        program = *program_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            unsafe void GetProgramString(Int32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Byte program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = &program)
                    {
                        Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program_ptr);
                        program = *program_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetProgramStringNV")]
            public static 
            unsafe void GetProgramString(UInt32 id, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramStringNV((UInt32)id, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] Int32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = param)
                    {
                        Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] out Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* param_ptr = &param)
                    {
                        Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 index, [OutAttribute] Int32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] UInt32[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* param_ptr = param)
                    {
                        Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] out UInt32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* param_ptr = &param)
                    {
                        Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param_ptr);
                        param = *param_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glGetProgramSubroutineParameteruivNV")]
            public static 
            unsafe void GetProgramSubroutineParameter(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, UInt32 index, [OutAttribute] UInt32* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetProgramSubroutineParameteruivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (UInt32)index, (UInt32*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetTextureHandleNV")]
            public static 
            Int64 GetTextureHandle(Int32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetTextureHandleNV((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetTextureHandleNV")]
            public static 
            Int64 GetTextureHandle(UInt32 texture)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetTextureHandleNV((UInt32)texture);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetTextureSamplerHandleNV")]
            public static 
            Int64 GetTextureSamplerHandle(Int32 texture, Int32 sampler)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetTextureSamplerHandleNV((UInt32)texture, (UInt32)sampler);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glGetTextureSamplerHandleNV")]
            public static 
            Int64 GetTextureSamplerHandle(UInt32 texture, UInt32 sampler)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetTextureSamplerHandleNV((UInt32)texture, (UInt32)sampler);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTrackMatrixivNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTrackMatrixivNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetTrackMatrixivNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetTrackMatrixivNV")]
            public static 
            unsafe void GetTrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTrackMatrixivNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.AssemblyProgramParameterArb)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute] 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
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            unsafe void GetTransformFeedbackVarying(Int32 program, Int32 index, [OutAttribute] Int32* location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute] 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
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Retrieve information about varying variables selected for transform feedback
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="index">
        /// <para>
        /// The index of the varying variable whose information to retrieve.
        /// </para>
        /// </param>
        /// <param name="bufSize">
        /// <para>
        /// The maximum number of characters, including the null terminator, that may be written into name.
        /// </para>
        /// </param>
        /// <param name="length">
        /// <para>
        /// The address of a variable which will receive the number of characters written into name, excluding the null-terminator. If length is NULL no length is returned.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The address of a variable that will receive the size of the varying.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The address of a variable that will recieve the type of the varying.
        /// </para>
        /// </param>
        /// <param name="name">
        /// <para>
        /// The address of a buffer into which will be written the name of the varying.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glGetTransformFeedbackVaryingNV")]
            public static 
            unsafe void GetTransformFeedbackVarying(UInt32 program, UInt32 index, [OutAttribute] Int32* location)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTransformFeedbackVaryingNV((UInt32)program, (UInt32)index, (Int32*)location);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            void GetUniform(Int32 program, Int32 location, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            void GetUniform(Int32 program, Int32 location, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            unsafe void GetUniform(Int32 program, Int32 location, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glGetUniformi64vNV")]
            public static 
            unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformi64vNV((UInt32)program, (Int32)location, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetUniformui64vNV")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetUniformui64vNV((UInt32)program, (Int32)location, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetUniformui64vNV")]
            public static 
            void GetUniform(UInt32 program, Int32 location, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetUniformui64vNV((UInt32)program, (Int32)location, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glGetUniformui64vNV")]
            public static 
            unsafe void GetUniform(UInt32 program, Int32 location, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetUniformui64vNV((UInt32)program, (Int32)location, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", 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
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", 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>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribdvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribdvNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribdvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribfvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribfvNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribfvNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribivNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribivNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribivNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            unsafe void GetVertexAttrib(Int32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLi64vNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribLi64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLui64vNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetVertexAttribLui64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLui64vNV")]
            public static 
            void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetVertexAttribLui64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_attrib_integer_64bit]
        /// 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, GL_VERTEX_ATTRIB_ARRAY_INTEGER, GL_VERTEX_ATTRIB_ARRAY_DIVISOR, or GL_CURRENT_VERTEX_ATTRIB.
        /// </para>
        /// </param>
        /// <param name="params">
        /// <para>
        /// Returns the requested data.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glGetVertexAttribLui64vNV")]
            public static 
            unsafe void GetVertexAttrib(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit pname, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribLui64vNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(Int32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [OutAttribute] IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVertexAttribPointervNV((UInt32)index, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glGetVertexAttribPointervNV")]
            public static 
            void GetVertexAttribPointer<T2>(UInt32 index, OpenTK.Graphics.OpenGL.NvVertexProgram pname, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.NvVertexProgram)pname, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            unsafe void GetVideoCapture(Int32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureivNV")]
            public static 
            unsafe void GetVideoCapture(UInt32 video_capture_slot, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureivNV((UInt32)video_capture_slot, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamdvNV")]
            public static 
            unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamfvNV")]
            public static 
            unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            unsafe void GetVideoCaptureStream(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glGetVideoCaptureStreamivNV")]
            public static 
            unsafe void GetVideoCaptureStream(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoCaptureStreamivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoi64vNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoi64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            unsafe void GetVideo(Int32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoivNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt64[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = @params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt64*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out UInt64 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* @params_ptr = &@params)
                    {
                        Delegates.glGetVideoui64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt64*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideoui64vNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt64* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideoui64vNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt64*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glGetVideouivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] out UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glGetVideouivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glGetVideouivNV")]
            public static 
            unsafe void GetVideo(UInt32 video_slot, OpenTK.Graphics.OpenGL.NvPresentVideo pname, [OutAttribute] UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetVideouivNV((UInt32)video_slot, (OpenTK.Graphics.OpenGL.NvPresentVideo)pname, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glIndexFormatNV")]
            public static 
            void IndexFormat(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexFormatNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glInterpolatePathsNV")]
            public static 
            void InterpolatePath(Int32 resultPath, Int32 pathA, Int32 pathB, Single weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInterpolatePathsNV((UInt32)resultPath, (UInt32)pathA, (UInt32)pathB, (Single)weight);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glInterpolatePathsNV")]
            public static 
            void InterpolatePath(UInt32 resultPath, UInt32 pathA, UInt32 pathB, Single weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInterpolatePathsNV((UInt32)resultPath, (UInt32)pathA, (UInt32)pathB, (Single)weight);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glIsBufferResidentNV")]
            public static 
            bool IsBufferResident(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsBufferResidentNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glIsImageHandleResidentNV")]
            public static 
            bool IsImageHandleResident(Int64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsImageHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glIsImageHandleResidentNV")]
            public static 
            bool IsImageHandleResident(UInt64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsImageHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glIsNamedBufferResidentNV")]
            public static 
            bool IsNamedBufferResident(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsNamedBufferResidentNV((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glIsNamedBufferResidentNV")]
            public static 
            bool IsNamedBufferResident(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsNamedBufferResidentNV((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [AutoGenerated(Category = "NV_occlusion_query", 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
            }

            /// <summary>[requires: NV_occlusion_query]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_occlusion_query", 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>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPathNV")]
            public static 
            bool IsPath(Int32 path)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPathNV((UInt32)path);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPathNV")]
            public static 
            bool IsPath(UInt32 path)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPathNV((UInt32)path);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPointInFillPathNV")]
            public static 
            bool IsPointInFillPath(Int32 path, Int32 mask, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPointInFillPathNV((UInt32)path, (UInt32)mask, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPointInFillPathNV")]
            public static 
            bool IsPointInFillPath(UInt32 path, UInt32 mask, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPointInFillPathNV((UInt32)path, (UInt32)mask, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPointInStrokePathNV")]
            public static 
            bool IsPointInStrokePath(Int32 path, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPointInStrokePathNV((UInt32)path, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glIsPointInStrokePathNV")]
            public static 
            bool IsPointInStrokePath(UInt32 path, Single x, Single y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsPointInStrokePathNV((UInt32)path, (Single)x, (Single)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Determines if a name corresponds to a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies a potential program object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// 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 = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glIsTextureHandleResidentNV")]
            public static 
            bool IsTextureHandleResident(Int64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTextureHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glIsTextureHandleResidentNV")]
            public static 
            bool IsTextureHandleResident(UInt64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glIsTextureHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Determine if a name corresponds to a transform feedback object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a transform feedback object.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Determine if a name corresponds to a transform feedback object
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies a value that may be the name of a transform feedback object.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback2", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glLoadProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 id, Int32 len, Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte[] program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* program_ptr = program)
                    {
                        Delegates.glLoadProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            void LoadProgram(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glLoadProgramNV")]
            public static 
            unsafe void LoadProgram(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 id, Int32 len, Byte* program)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadProgramNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)id, (Int32)len, (Byte*)program);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeBufferNonResidentNV")]
            public static 
            void MakeBufferNonResident(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeBufferNonResidentNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeBufferResidentNV")]
            public static 
            void MakeBufferResident(OpenTK.Graphics.OpenGL.NvShaderBufferLoad target, OpenTK.Graphics.OpenGL.NvShaderBufferLoad access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeBufferResidentNV((OpenTK.Graphics.OpenGL.NvShaderBufferLoad)target, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeImageHandleNonResidentNV")]
            public static 
            void MakeImageHandleNonResident(Int64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeImageHandleNonResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeImageHandleNonResidentNV")]
            public static 
            void MakeImageHandleNonResident(UInt64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeImageHandleNonResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeImageHandleResidentNV")]
            public static 
            void MakeImageHandleResident(Int64 handle, OpenTK.Graphics.OpenGL.NvBindlessTexture access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeImageHandleResidentNV((UInt64)handle, (OpenTK.Graphics.OpenGL.NvBindlessTexture)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeImageHandleResidentNV")]
            public static 
            void MakeImageHandleResident(UInt64 handle, OpenTK.Graphics.OpenGL.NvBindlessTexture access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeImageHandleResidentNV((UInt64)handle, (OpenTK.Graphics.OpenGL.NvBindlessTexture)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeNamedBufferNonResidentNV")]
            public static 
            void MakeNamedBufferNonResident(Int32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeNamedBufferNonResidentNV((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeNamedBufferNonResidentNV")]
            public static 
            void MakeNamedBufferNonResident(UInt32 buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeNamedBufferNonResidentNV((UInt32)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeNamedBufferResidentNV")]
            public static 
            void MakeNamedBufferResident(Int32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeNamedBufferResidentNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_shader_buffer_load]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glMakeNamedBufferResidentNV")]
            public static 
            void MakeNamedBufferResident(UInt32 buffer, OpenTK.Graphics.OpenGL.NvShaderBufferLoad access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeNamedBufferResidentNV((UInt32)buffer, (OpenTK.Graphics.OpenGL.NvShaderBufferLoad)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeTextureHandleNonResidentNV")]
            public static 
            void MakeTextureHandleNonResident(Int64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeTextureHandleNonResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeTextureHandleNonResidentNV")]
            public static 
            void MakeTextureHandleNonResident(UInt64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeTextureHandleNonResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeTextureHandleResidentNV")]
            public static 
            void MakeTextureHandleResident(Int64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeTextureHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glMakeTextureHandleResidentNV")]
            public static 
            void MakeTextureHandleResident(UInt64 handle)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMakeTextureHandleResidentNV((UInt64)handle);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, Int32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                    points = (T8)points_ptr.Target;
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, IntPtr points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] T8[,,] points)
                where T8 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle points_ptr = GCHandle.Alloc(points, GCHandleType.Pinned);
                try
                {
                    Delegates.glMapControlPointsNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapControlPointsNV")]
            public static 
            void MapControlPoints<T8>(OpenTK.Graphics.OpenGL.NvEvaluators target, UInt32 index, OpenTK.Graphics.OpenGL.NvEvaluators type, Int32 ustride, Int32 vstride, Int32 uorder, Int32 vorder, bool packed, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NvEvaluators)target, (UInt32)index, (OpenTK.Graphics.OpenGL.NvEvaluators)type, (Int32)ustride, (Int32)vstride, (Int32)uorder, (Int32)vorder, (bool)packed, (IntPtr)points_ptr.AddrOfPinnedObject());
                    points = (T8)points_ptr.Target;
                }
                finally
                {
                    points_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterfvNV")]
            public static 
            unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapParameterfvNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_evaluators]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_evaluators", Version = "1.1", EntryPoint = "glMapParameterivNV")]
            public static 
            unsafe void MapParameter(OpenTK.Graphics.OpenGL.NvEvaluators target, OpenTK.Graphics.OpenGL.NvEvaluators pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapParameterivNV((OpenTK.Graphics.OpenGL.NvEvaluators)target, (OpenTK.Graphics.OpenGL.NvEvaluators)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord1hNV")]
            public static 
            void MultiTexCoord1h(OpenTK.Graphics.OpenGL.TextureUnit target, Half s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1hNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half)s);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord1hvNV")]
            public static 
            unsafe void MultiTexCoord1h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord2hNV")]
            public static 
            void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, Half s, Half t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2hNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half)s, (Half)t);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord2hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord2hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord2hvNV")]
            public static 
            unsafe void MultiTexCoord2h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord3hNV")]
            public static 
            void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, Half s, Half t, Half r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3hNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half)s, (Half)t, (Half)r);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord3hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord3hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord3hvNV")]
            public static 
            unsafe void MultiTexCoord3h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord4hNV")]
            public static 
            void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, Half s, Half t, Half r, Half q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4hNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half)s, (Half)t, (Half)r, (Half)q);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glMultiTexCoord4hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glMultiTexCoord4hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glMultiTexCoord4hvNV")]
            public static 
            unsafe void MultiTexCoord4h(OpenTK.Graphics.OpenGL.TextureUnit target, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4hvNV((OpenTK.Graphics.OpenGL.TextureUnit)target, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glNormal3hNV")]
            public static 
            void Normal3h(Half nx, Half ny, Half nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3hNV((Half)nx, (Half)ny, (Half)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            void Normal3h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glNormal3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            void Normal3h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glNormal3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glNormal3hvNV")]
            public static 
            unsafe void Normal3h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glNormalFormatNV")]
            public static 
            void NormalFormat(OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormalFormatNV((OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathColorGenNV")]
            public static 
            void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, Single[] coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coeffs_ptr = coeffs)
                    {
                        Delegates.glPathColorGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (OpenTK.Graphics.OpenGL.NvPathRendering)colorFormat, (Single*)coeffs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathColorGenNV")]
            public static 
            void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, ref Single coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coeffs_ptr = &coeffs)
                    {
                        Delegates.glPathColorGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (OpenTK.Graphics.OpenGL.NvPathRendering)colorFormat, (Single*)coeffs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathColorGenNV")]
            public static 
            unsafe void PathColorGen(OpenTK.Graphics.OpenGL.NvPathRendering color, OpenTK.Graphics.OpenGL.NvPathRendering genMode, OpenTK.Graphics.OpenGL.NvPathRendering colorFormat, Single* coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathColorGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)color, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (OpenTK.Graphics.OpenGL.NvPathRendering)colorFormat, (Single*)coeffs);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T5)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(Int32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T5)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(Int32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T5)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T5)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            void PathCommands<T5>(UInt32 path, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T5)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T5[,,] coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCommandsNV")]
            public static 
            unsafe void PathCommands<T5>(UInt32 path, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T5 coords)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCommandsNV((UInt32)path, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T5)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,,] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(Int32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T3 coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T3)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T3[,,] coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoordsNV")]
            public static 
            void PathCoords<T3>(UInt32 path, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T3 coords)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathCoordsNV((UInt32)path, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T3)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathCoverDepthFuncNV")]
            public static 
            void PathCoverDepthFunc(OpenTK.Graphics.OpenGL.DepthFunction func)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathCoverDepthFuncNV((OpenTK.Graphics.OpenGL.DepthFunction)func);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            void PathDashArray(Int32 path, Int32 dashCount, Single[] dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = dashArray)
                    {
                        Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            void PathDashArray(Int32 path, Int32 dashCount, ref Single dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = &dashArray)
                    {
                        Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            unsafe void PathDashArray(Int32 path, Int32 dashCount, Single* dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            void PathDashArray(UInt32 path, Int32 dashCount, Single[] dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = dashArray)
                    {
                        Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            void PathDashArray(UInt32 path, Int32 dashCount, ref Single dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* dashArray_ptr = &dashArray)
                    {
                        Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathDashArrayNV")]
            public static 
            unsafe void PathDashArray(UInt32 path, Int32 dashCount, Single* dashArray)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathDashArrayNV((UInt32)path, (Int32)dashCount, (Single*)dashArray);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathFogGenNV")]
            public static 
            void PathFogGen(OpenTK.Graphics.OpenGL.NvPathRendering genMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathFogGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)genMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName, (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, Int32 fontStyle, Int32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                    fontName = (T2)fontName_ptr.Target;
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName, (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphRangeNV")]
            public static 
            void PathGlyphRange<T2>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, UInt32 fontStyle, UInt32 firstGlyph, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphRangeNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (UInt32)firstGlyph, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                    fontName = (T2)fontName_ptr.Target;
                }
                finally
                {
                    fontName_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName, (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(Int32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, Int32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, Int32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                    fontName = (T2)fontName_ptr.Target;
                    charcodes = (T6)charcodes_ptr.Target;
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, IntPtr fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, IntPtr charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName, (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes, (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] T2[,,] fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] T6[,,] charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathGlyphsNV")]
            public static 
            void PathGlyph<T2,T6>(UInt32 firstPathName, OpenTK.Graphics.OpenGL.NvPathRendering fontTarget, [InAttribute, OutAttribute] ref T2 fontName, UInt32 fontStyle, Int32 numGlyphs, OpenTK.Graphics.OpenGL.NvPathRendering type, [InAttribute, OutAttribute] ref T6 charcodes, OpenTK.Graphics.OpenGL.NvPathRendering handleMissingGlyphs, UInt32 pathParameterTemplate, Single emScale)
                where T2 : struct
                where T6 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle fontName_ptr = GCHandle.Alloc(fontName, GCHandleType.Pinned);
                GCHandle charcodes_ptr = GCHandle.Alloc(charcodes, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathGlyphsNV((UInt32)firstPathName, (OpenTK.Graphics.OpenGL.NvPathRendering)fontTarget, (IntPtr)fontName_ptr.AddrOfPinnedObject(), (UInt32)fontStyle, (Int32)numGlyphs, (OpenTK.Graphics.OpenGL.NvPathRendering)type, (IntPtr)charcodes_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvPathRendering)handleMissingGlyphs, (UInt32)pathParameterTemplate, (Single)emScale);
                    fontName = (T2)fontName_ptr.Target;
                    charcodes = (T6)charcodes_ptr.Target;
                }
                finally
                {
                    fontName_ptr.Free();
                    charcodes_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfNV")]
            public static 
            void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterfNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfNV")]
            public static 
            void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterfNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfvNV")]
            public static 
            void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfvNV")]
            public static 
            unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfvNV")]
            public static 
            void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* value_ptr = value)
                    {
                        Delegates.glPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterfvNV")]
            public static 
            unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Single* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterfvNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Single*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameteriNV")]
            public static 
            void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameteriNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameteriNV")]
            public static 
            void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameteriNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterivNV")]
            public static 
            void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterivNV")]
            public static 
            unsafe void PathParameter(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterivNV")]
            public static 
            void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* value_ptr = value)
                    {
                        Delegates.glPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathParameterivNV")]
            public static 
            unsafe void PathParameter(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering pname, Int32* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathParameterivNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)pname, (Int32*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStencilDepthOffsetNV")]
            public static 
            void PathStencilDepthOffset(Single factor, Single units)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathStencilDepthOffsetNV((Single)factor, (Single)units);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStencilFuncNV")]
            public static 
            void PathStencilFunc(OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathStencilFuncNV((OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStencilFuncNV")]
            public static 
            void PathStencilFunc(OpenTK.Graphics.OpenGL.StencilFunction func, Int32 @ref, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathStencilFuncNV((OpenTK.Graphics.OpenGL.StencilFunction)func, (Int32)@ref, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, IntPtr pathString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,,] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] ref T3 pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                    pathString = (T3)pathString_ptr.Target;
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, IntPtr pathString)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] T3[,,] pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathStringNV")]
            public static 
            void PathString<T3>(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering format, Int32 length, [InAttribute, OutAttribute] ref T3 pathString)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pathString_ptr = GCHandle.Alloc(pathString, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathStringNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)format, (Int32)length, (IntPtr)pathString_ptr.AddrOfPinnedObject());
                    pathString = (T3)pathString_ptr.Target;
                }
                finally
                {
                    pathString_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T7)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T7)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(Int32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T7)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte[] commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T7)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, ref Byte commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* commands_ptr = &commands)
                    {
                        GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands_ptr, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                            coords = (T7)coords_ptr.Target;
                        }
                        finally
                        {
                            coords_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T7[,,] coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCommandsNV")]
            public static 
            unsafe void PathSubCommands<T7>(UInt32 path, Int32 commandStart, Int32 commandsToDelete, Int32 numCommands, Byte* commands, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T7 coords)
                where T7 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCommandsNV((UInt32)path, (Int32)commandStart, (Int32)commandsToDelete, (Int32)numCommands, (Byte*)commands, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T7)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,,] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(Int32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T4 coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T4)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, IntPtr coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] T4[,,] coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathSubCoordsNV")]
            public static 
            void PathSubCoords<T4>(UInt32 path, Int32 coordStart, Int32 numCoords, OpenTK.Graphics.OpenGL.NvPathRendering coordType, [InAttribute, OutAttribute] ref T4 coords)
                where T4 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle coords_ptr = GCHandle.Alloc(coords, GCHandleType.Pinned);
                try
                {
                    Delegates.glPathSubCoordsNV((UInt32)path, (Int32)coordStart, (Int32)numCoords, (OpenTK.Graphics.OpenGL.NvPathRendering)coordType, (IntPtr)coords_ptr.AddrOfPinnedObject());
                    coords = (T4)coords_ptr.Target;
                }
                finally
                {
                    coords_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathTexGenNV")]
            public static 
            void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, Single[] coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coeffs_ptr = coeffs)
                    {
                        Delegates.glPathTexGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (Int32)components, (Single*)coeffs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathTexGenNV")]
            public static 
            void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, ref Single coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* coeffs_ptr = &coeffs)
                    {
                        Delegates.glPathTexGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (Int32)components, (Single*)coeffs_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPathTexGenNV")]
            public static 
            unsafe void PathTexGen(OpenTK.Graphics.OpenGL.NvPathRendering texCoordSet, OpenTK.Graphics.OpenGL.NvPathRendering genMode, Int32 components, Single* coeffs)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPathTexGenNV((OpenTK.Graphics.OpenGL.NvPathRendering)texCoordSet, (OpenTK.Graphics.OpenGL.NvPathRendering)genMode, (Int32)components, (Single*)coeffs);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Pause transform feedback operations
        /// </summary>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glPauseTransformFeedbackNV")]
            public static 
            void PauseTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPauseTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelDataRangeNV((OpenTK.Graphics.OpenGL.NvPixelDataRange)target, (Int32)length, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((OpenTK.Graphics.OpenGL.NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((OpenTK.Graphics.OpenGL.NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glPixelDataRangeNV((OpenTK.Graphics.OpenGL.NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_pixel_data_range]</summary>
            [AutoGenerated(Category = "NV_pixel_data_range", Version = "1.2", EntryPoint = "glPixelDataRangeNV")]
            public static 
            void PixelDataRange<T2>(OpenTK.Graphics.OpenGL.NvPixelDataRange target, Int32 length, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.NvPixelDataRange)target, (Int32)length, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPointAlongPathNV")]
            public static 
            bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] out Single x, [OutAttribute] out Single y, [OutAttribute] out Single tangentX, [OutAttribute] out Single tangentY)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* x_ptr = &x)
                    fixed (Single* y_ptr = &y)
                    fixed (Single* tangentX_ptr = &tangentX)
                    fixed (Single* tangentY_ptr = &tangentY)
                    {
                        bool retval = Delegates.glPointAlongPathNV((UInt32)path, (Int32)startSegment, (Int32)numSegments, (Single)distance, (Single*)x_ptr, (Single*)y_ptr, (Single*)tangentX_ptr, (Single*)tangentY_ptr);
                        x = *x_ptr;
                        y = *y_ptr;
                        tangentX = *tangentX_ptr;
                        tangentY = *tangentY_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPointAlongPathNV")]
            public static 
            unsafe bool PointAlongPath(Int32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] Single* x, [OutAttribute] Single* y, [OutAttribute] Single* tangentX, [OutAttribute] Single* tangentY)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPointAlongPathNV((UInt32)path, (Int32)startSegment, (Int32)numSegments, (Single)distance, (Single*)x, (Single*)y, (Single*)tangentX, (Single*)tangentY);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPointAlongPathNV")]
            public static 
            bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] out Single x, [OutAttribute] out Single y, [OutAttribute] out Single tangentX, [OutAttribute] out Single tangentY)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* x_ptr = &x)
                    fixed (Single* y_ptr = &y)
                    fixed (Single* tangentX_ptr = &tangentX)
                    fixed (Single* tangentY_ptr = &tangentY)
                    {
                        bool retval = Delegates.glPointAlongPathNV((UInt32)path, (Int32)startSegment, (Int32)numSegments, (Single)distance, (Single*)x_ptr, (Single*)y_ptr, (Single*)tangentX_ptr, (Single*)tangentY_ptr);
                        x = *x_ptr;
                        y = *y_ptr;
                        tangentX = *tangentX_ptr;
                        tangentY = *tangentY_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glPointAlongPathNV")]
            public static 
            unsafe bool PointAlongPath(UInt32 path, Int32 startSegment, Int32 numSegments, Single distance, [OutAttribute] Single* x, [OutAttribute] Single* y, [OutAttribute] Single* tangentX, [OutAttribute] Single* tangentY)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPointAlongPathNV((UInt32)path, (Int32)startSegment, (Int32)numSegments, (Single)distance, (Single*)x, (Single*)y, (Single*)tangentX, (Single*)tangentY);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_point_sprite]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "NV_point_sprite", Version = "1.2", EntryPoint = "glPointParameteriNV")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameteriNV((OpenTK.Graphics.OpenGL.NvPointSprite)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_point_sprite]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "NV_point_sprite", Version = "1.2", EntryPoint = "glPointParameterivNV")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glPointParameterivNV((OpenTK.Graphics.OpenGL.NvPointSprite)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_point_sprite]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "NV_point_sprite", Version = "1.2", EntryPoint = "glPointParameterivNV")]
            public static 
            unsafe void PointParameter(OpenTK.Graphics.OpenGL.NvPointSprite pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterivNV((OpenTK.Graphics.OpenGL.NvPointSprite)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glPresentFrameDualFillNV")]
            public static 
            void PresentFrameDualFill(Int32 video_slot, Int64 minPresentTime, Int32 beginPresentTimeId, Int32 presentDurationId, OpenTK.Graphics.OpenGL.NvPresentVideo type, OpenTK.Graphics.OpenGL.NvPresentVideo target0, Int32 fill0, OpenTK.Graphics.OpenGL.NvPresentVideo target1, Int32 fill1, OpenTK.Graphics.OpenGL.NvPresentVideo target2, Int32 fill2, OpenTK.Graphics.OpenGL.NvPresentVideo target3, Int32 fill3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameDualFillNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (OpenTK.Graphics.OpenGL.NvPresentVideo)type, (OpenTK.Graphics.OpenGL.NvPresentVideo)target0, (UInt32)fill0, (OpenTK.Graphics.OpenGL.NvPresentVideo)target1, (UInt32)fill1, (OpenTK.Graphics.OpenGL.NvPresentVideo)target2, (UInt32)fill2, (OpenTK.Graphics.OpenGL.NvPresentVideo)target3, (UInt32)fill3);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glPresentFrameDualFillNV")]
            public static 
            void PresentFrameDualFill(UInt32 video_slot, UInt64 minPresentTime, UInt32 beginPresentTimeId, UInt32 presentDurationId, OpenTK.Graphics.OpenGL.NvPresentVideo type, OpenTK.Graphics.OpenGL.NvPresentVideo target0, UInt32 fill0, OpenTK.Graphics.OpenGL.NvPresentVideo target1, UInt32 fill1, OpenTK.Graphics.OpenGL.NvPresentVideo target2, UInt32 fill2, OpenTK.Graphics.OpenGL.NvPresentVideo target3, UInt32 fill3)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPresentFrameDualFillNV((UInt32)video_slot, (UInt64)minPresentTime, (UInt32)beginPresentTimeId, (UInt32)presentDurationId, (OpenTK.Graphics.OpenGL.NvPresentVideo)type, (OpenTK.Graphics.OpenGL.NvPresentVideo)target0, (UInt32)fill0, (OpenTK.Graphics.OpenGL.NvPresentVideo)target1, (UInt32)fill1, (OpenTK.Graphics.OpenGL.NvPresentVideo)target2, (UInt32)fill2, (OpenTK.Graphics.OpenGL.NvPresentVideo)target3, (UInt32)fill3);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glPresentFrameKeyedNV")]
            public static 
            void PresentFrameKeye(Int32 video_slot, Int64 minPresentTime, Int32 beginPresentTimeId, Int32 presentDurationId, OpenTK.Graphics.OpenGL.NvPresentVideo type, OpenTK.Graphics.OpenGL.NvPresentVideo target0, Int32 fill0, Int32 key0, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.NvPresentVideo)type, (OpenTK.Graphics.OpenGL.NvPresentVideo)target0, (UInt32)fill0, (UInt32)key0, (OpenTK.Graphics.OpenGL.NvPresentVideo)target1, (UInt32)fill1, (UInt32)key1);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_present_video]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_present_video", Version = "1.2", EntryPoint = "glPresentFrameKeyedNV")]
            public static 
            void PresentFrameKeye(UInt32 video_slot, UInt64 minPresentTime, UInt32 beginPresentTimeId, UInt32 presentDurationId, OpenTK.Graphics.OpenGL.NvPresentVideo type, OpenTK.Graphics.OpenGL.NvPresentVideo target0, UInt32 fill0, UInt32 key0, OpenTK.Graphics.OpenGL.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, (OpenTK.Graphics.OpenGL.NvPresentVideo)type, (OpenTK.Graphics.OpenGL.NvPresentVideo)target0, (UInt32)fill0, (UInt32)key0, (OpenTK.Graphics.OpenGL.NvPresentVideo)target1, (UInt32)fill1, (UInt32)key1);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_primitive_restart]
        /// Specify the primitive restart index
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the value to be interpreted as the primitive restart index.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_primitive_restart", 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
            }

            
        /// <summary>[requires: NV_primitive_restart]
        /// Specify the primitive restart index
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the value to be interpreted as the primitive restart index.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_primitive_restart", 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
            }

            /// <summary>[requires: NV_primitive_restart]</summary>
            [AutoGenerated(Category = "NV_primitive_restart", Version = "1.2", EntryPoint = "glPrimitiveRestartNV")]
            public static 
            void PrimitiveRestart()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrimitiveRestartNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersfvNV")]
            public static 
            unsafe void ProgramBufferParameters(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersfvNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, Int32 bindingIndex, Int32 wordIndex, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIivNV")]
            public static 
            unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramBufferParametersIuivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramBufferParametersIuivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_parameter_buffer_object]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_parameter_buffer_object", Version = "1.2", EntryPoint = "glProgramBufferParametersIuivNV")]
            public static 
            unsafe void ProgramBufferParametersI(OpenTK.Graphics.OpenGL.NvParameterBufferObject target, UInt32 bindingIndex, UInt32 wordIndex, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramBufferParametersIuivNV((OpenTK.Graphics.OpenGL.NvParameterBufferObject)target, (UInt32)bindingIndex, (UInt32)wordIndex, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4iNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4iNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4iNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4iNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4ivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uiNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4uiNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramEnvParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParameterI4uivNV")]
            public static 
            unsafe void ProgramEnvParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4ivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramEnvParametersI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramEnvParametersI4uivNV")]
            public static 
            unsafe void ProgramEnvParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramEnvParametersI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4iNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4iNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4iNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 x, Int32 y, Int32 z, Int32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4iNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)x, (Int32)y, (Int32)z, (Int32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4ivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uiNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32 x, UInt32 y, UInt32 z, UInt32 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4uiNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32)x, (UInt32)y, (UInt32)z, (UInt32)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramLocalParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParameterI4uivNV")]
            public static 
            unsafe void ProgramLocalParameterI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParameterI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, Int32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4ivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4ivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramLocalParametersI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program4", Version = "1.3", EntryPoint = "glProgramLocalParametersI4uivNV")]
            public static 
            unsafe void ProgramLocalParametersI4(OpenTK.Graphics.OpenGL.NvGpuProgram4 target, UInt32 index, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramLocalParametersI4uivNV((OpenTK.Graphics.OpenGL.NvGpuProgram4)target, (UInt32)index, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glProgramNamedParameter4dvNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            void ProgramNamedParameter4(Int32 id, Int32 len, ref Byte name, 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", Version = "1.2", EntryPoint = "glProgramNamedParameter4fvNV")]
            public static 
            void ProgramNamedParameter4(UInt32 id, Int32 len, ref Byte name, 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            /// <summary>[requires: NV_fragment_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fragment_program", 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
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double x, Double y, Double z, Double w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double)x, (Double)y, (Double)z, (Double)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4dvNV")]
            public static 
            unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single x, Single y, Single z, Single w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single)x, (Single)y, (Single)z, (Single)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specify a parameter for a program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the name of a program object whose parameter to modify.
        /// </para>
        /// </param>
        /// <param name="pname">
        /// <para>
        /// Specifies the name of the parameter to modify.
        /// </para>
        /// </param>
        /// <param name="value">
        /// <para>
        /// Specifies the new value of the parameter specified by pname for program.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameter4fvNV")]
            public static 
            unsafe void ProgramParameter4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameter4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameters4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Double[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = v)
                    {
                        Delegates.glProgramParameters4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, ref Double v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4dvNV")]
            public static 
            unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Double* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4dvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Double*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameters4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Single[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = v)
                    {
                        Delegates.glProgramParameters4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, ref Single v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* v_ptr = &v)
                    {
                        Delegates.glProgramParameters4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glProgramParameters4fvNV")]
            public static 
            unsafe void ProgramParameters4(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 index, Int32 count, Single* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramParameters4fvNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)index, (Int32)count, (Single*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, UInt32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = @params)
                    {
                        Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, ref UInt32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* @params_ptr = &@params)
                    {
                        Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_gpu_program5]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_gpu_program5", Version = "4.1", EntryPoint = "glProgramSubroutineParametersuivNV")]
            public static 
            unsafe void ProgramSubroutineParameters(OpenTK.Graphics.OpenGL.NvGpuProgram5 target, Int32 count, UInt32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramSubroutineParametersuivNV((OpenTK.Graphics.OpenGL.NvGpuProgram5)target, (Int32)count, (UInt32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64NV")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1i64NV((UInt32)program, (Int32)location, (Int64)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64NV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1i64NV((UInt32)program, (Int32)location, (Int64)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            void ProgramUniform1(Int32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            unsafe void ProgramUniform1(Int32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1i64vNV")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1ui64NV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, UInt64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1ui64NV((UInt32)program, (Int32)location, (UInt64)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1ui64vNV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glProgramUniform1ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1ui64vNV")]
            public static 
            void ProgramUniform1(UInt32 program, Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform1ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform1ui64vNV")]
            public static 
            unsafe void ProgramUniform1(UInt32 program, Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform1ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64NV")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int64 x, Int64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64NV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int64 x, Int64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            void ProgramUniform2(Int32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            unsafe void ProgramUniform2(Int32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2i64vNV")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2ui64NV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, UInt64 x, UInt64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2ui64NV((UInt32)program, (Int32)location, (UInt64)x, (UInt64)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2ui64vNV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glProgramUniform2ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2ui64vNV")]
            public static 
            void ProgramUniform2(UInt32 program, Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform2ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform2ui64vNV")]
            public static 
            unsafe void ProgramUniform2(UInt32 program, Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform2ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64NV")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int64 x, Int64 y, Int64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y, (Int64)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64NV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int64 x, Int64 y, Int64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y, (Int64)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            void ProgramUniform3(Int32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            unsafe void ProgramUniform3(Int32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3i64vNV")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3ui64NV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, UInt64 x, UInt64 y, UInt64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3ui64NV((UInt32)program, (Int32)location, (UInt64)x, (UInt64)y, (UInt64)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3ui64vNV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glProgramUniform3ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3ui64vNV")]
            public static 
            void ProgramUniform3(UInt32 program, Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform3ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform3ui64vNV")]
            public static 
            unsafe void ProgramUniform3(UInt32 program, Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform3ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64NV")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int64 x, Int64 y, Int64 z, Int64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y, (Int64)z, (Int64)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64NV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int64 x, Int64 y, Int64 z, Int64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4i64NV((UInt32)program, (Int32)location, (Int64)x, (Int64)y, (Int64)z, (Int64)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            void ProgramUniform4(Int32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            unsafe void ProgramUniform4(Int32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4i64vNV")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4i64vNV((UInt32)program, (Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4ui64NV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, UInt64 x, UInt64 y, UInt64 z, UInt64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4ui64NV((UInt32)program, (Int32)location, (UInt64)x, (UInt64)y, (UInt64)z, (UInt64)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4ui64vNV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glProgramUniform4ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4ui64vNV")]
            public static 
            void ProgramUniform4(UInt32 program, Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glProgramUniform4ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glProgramUniform4ui64vNV")]
            public static 
            unsafe void ProgramUniform4(UInt32 program, Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniform4ui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64NV")]
            public static 
            void ProgramUniformHandle(Int32 program, Int32 location, Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformHandleui64NV((UInt32)program, (Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64NV")]
            public static 
            void ProgramUniformHandle(UInt32 program, Int32 location, UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformHandleui64NV((UInt32)program, (Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* values_ptr = values)
                    {
                        Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, ref Int64 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* values_ptr = &values)
                    {
                        Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            unsafe void ProgramUniformHandle(Int32 program, Int32 location, Int32 count, Int64* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* values_ptr = values)
                    {
                        Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, ref UInt64 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* values_ptr = &values)
                    {
                        Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glProgramUniformHandleui64vNV")]
            public static 
            unsafe void ProgramUniformHandle(UInt32 program, Int32 location, Int32 count, UInt64* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformHandleui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)values);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64NV")]
            public static 
            void ProgramUniform(Int32 program, Int32 location, Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformui64NV((UInt32)program, (Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64NV")]
            public static 
            void ProgramUniform(UInt32 program, Int32 location, UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformui64NV((UInt32)program, (Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            void ProgramUniform(Int32 program, Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            void ProgramUniform(Int32 program, Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            unsafe void ProgramUniform(Int32 program, Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            void ProgramUniform(UInt32 program, Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            void ProgramUniform(UInt32 program, Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// Specify the value of a uniform variable for a specified program object
        /// </summary>
        /// <param name="program">
        /// <para>
        /// Specifies the handle of the program containing the uniform variable to be modified.
        /// </para>
        /// </param>
        /// <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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glProgramUniformui64vNV")]
            public static 
            unsafe void ProgramUniform(UInt32 program, Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramUniformui64vNV((UInt32)program, (Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_geometry_program4]</summary>
            [AutoGenerated(Category = "NV_geometry_program4", Version = "2.0", EntryPoint = "glProgramVertexLimitNV")]
            public static 
            void ProgramVertexLimit(OpenTK.Graphics.OpenGL.NvGeometryProgram4 target, Int32 limit)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glProgramVertexLimitNV((OpenTK.Graphics.OpenGL.NvGeometryProgram4)target, (Int32)limit);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_framebuffer_multisample_coverage]</summary>
            [AutoGenerated(Category = "NV_framebuffer_multisample_coverage", Version = "1.5", EntryPoint = "glRenderbufferStorageMultisampleCoverageNV")]
            public static 
            void RenderbufferStorageMultisampleCoverage(OpenTK.Graphics.OpenGL.RenderbufferTarget target, Int32 coverageSamples, Int32 colorSamples, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRenderbufferStorageMultisampleCoverageNV((OpenTK.Graphics.OpenGL.RenderbufferTarget)target, (Int32)coverageSamples, (Int32)colorSamples, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            
        /// <summary>[requires: NV_transform_feedback2]
        /// Resume transform feedback operations
        /// </summary>
            [AutoGenerated(Category = "NV_transform_feedback2", Version = "", EntryPoint = "glResumeTransformFeedbackNV")]
            public static 
            void ResumeTransformFeedback()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glResumeTransformFeedbackNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_explicit_multisample]</summary>
            [AutoGenerated(Category = "NV_explicit_multisample", 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
            }

            /// <summary>[requires: NV_explicit_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glSecondaryColor3hNV")]
            public static 
            void SecondaryColor3h(Half red, Half green, Half blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3hNV((Half)red, (Half)green, (Half)blue);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            void SecondaryColor3h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glSecondaryColor3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            void SecondaryColor3h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glSecondaryColor3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glSecondaryColor3hvNV")]
            public static 
            unsafe void SecondaryColor3h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColor3hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glSecondaryColorFormatNV")]
            public static 
            void SecondaryColorFormat(Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSecondaryColorFormatNV((Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glSetFenceNV")]
            public static 
            void SetFence(Int32 fence, OpenTK.Graphics.OpenGL.NvFence condition)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)condition);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", Version = "1.2", EntryPoint = "glSetFenceNV")]
            public static 
            void SetFence(UInt32 fence, OpenTK.Graphics.OpenGL.NvFence condition)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSetFenceNV((UInt32)fence, (OpenTK.Graphics.OpenGL.NvFence)condition);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathInstancedNV")]
            public static 
            unsafe void StencilFillPathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilFillPathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathNV")]
            public static 
            void StencilFillPath(Int32 path, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFillPathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilFillPathNV")]
            public static 
            void StencilFillPath(UInt32 path, OpenTK.Graphics.OpenGL.NvPathRendering fillMode, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilFillPathNV((UInt32)path, (OpenTK.Graphics.OpenGL.NvPathRendering)fillMode, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, IntPtr paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths, (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] T2[,,] paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, Int32 pathBase, Int32 reference, Int32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                        try
                        {
                            Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                            paths = (T2)paths_ptr.Target;
                        }
                        finally
                        {
                            paths_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathInstancedNV")]
            public static 
            unsafe void StencilStrokePathInstanced<T2>(Int32 numPaths, OpenTK.Graphics.OpenGL.NvPathRendering pathNameType, [InAttribute, OutAttribute] ref T2 paths, UInt32 pathBase, Int32 reference, UInt32 mask, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle paths_ptr = GCHandle.Alloc(paths, GCHandleType.Pinned);
                try
                {
                    Delegates.glStencilStrokePathInstancedNV((Int32)numPaths, (OpenTK.Graphics.OpenGL.NvPathRendering)pathNameType, (IntPtr)paths_ptr.AddrOfPinnedObject(), (UInt32)pathBase, (Int32)reference, (UInt32)mask, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                    paths = (T2)paths_ptr.Target;
                }
                finally
                {
                    paths_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathNV")]
            public static 
            void StencilStrokePath(Int32 path, Int32 reference, Int32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilStrokePathNV((UInt32)path, (Int32)reference, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glStencilStrokePathNV")]
            public static 
            void StencilStrokePath(UInt32 path, Int32 reference, UInt32 mask)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStencilStrokePathNV((UInt32)path, (Int32)reference, (UInt32)mask);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_fence]</summary>
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_fence]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_fence", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord1hNV")]
            public static 
            void TexCoord1h(Half s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1hNV((Half)s);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord1hvNV")]
            public static 
            unsafe void TexCoord1h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord2hNV")]
            public static 
            void TexCoord2h(Half s, Half t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2hNV((Half)s, (Half)t);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            void TexCoord2h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glTexCoord2hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            void TexCoord2h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord2hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord2hvNV")]
            public static 
            unsafe void TexCoord2h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord3hNV")]
            public static 
            void TexCoord3h(Half s, Half t, Half r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3hNV((Half)s, (Half)t, (Half)r);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            void TexCoord3h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glTexCoord3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            void TexCoord3h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord3hvNV")]
            public static 
            unsafe void TexCoord3h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord4hNV")]
            public static 
            void TexCoord4h(Half s, Half t, Half r, Half q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4hNV((Half)s, (Half)t, (Half)r, (Half)q);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            void TexCoord4h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glTexCoord4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            void TexCoord4h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glTexCoord4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glTexCoord4hvNV")]
            public static 
            unsafe void TexCoord4h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glTexCoordFormatNV")]
            public static 
            void TexCoordFormat(Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoordFormatNV((Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTexImage2DMultisampleCoverageNV")]
            public static 
            void TexImage2DMultisampleCoverage(OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage2DMultisampleCoverageNV((OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTexImage3DMultisampleCoverageNV")]
            public static 
            void TexImage3DMultisampleCoverage(OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage3DMultisampleCoverageNV((OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_explicit_multisample]</summary>
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glTexRenderbufferNV")]
            public static 
            void TexRenderbuffer(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexRenderbufferNV((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_explicit_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_explicit_multisample", Version = "", EntryPoint = "glTexRenderbufferNV")]
            public static 
            void TexRenderbuffer(OpenTK.Graphics.OpenGL.TextureTarget target, UInt32 renderbuffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexRenderbufferNV((OpenTK.Graphics.OpenGL.TextureTarget)target, (UInt32)renderbuffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_barrier]</summary>
            [AutoGenerated(Category = "NV_texture_barrier", Version = "1.2", EntryPoint = "glTextureBarrierNV")]
            public static 
            void TextureBarrier()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureBarrierNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage2DMultisampleCoverageNV")]
            public static 
            void TextureImage2DMultisampleCoverage(Int32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DMultisampleCoverageNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage2DMultisampleCoverageNV")]
            public static 
            void TextureImage2DMultisampleCoverage(UInt32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DMultisampleCoverageNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage2DMultisampleNV")]
            public static 
            void TextureImage2DMultisample(Int32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 samples, Int32 internalFormat, Int32 width, Int32 height, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DMultisampleNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)samples, (Int32)internalFormat, (Int32)width, (Int32)height, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage2DMultisampleNV")]
            public static 
            void TextureImage2DMultisample(UInt32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 samples, Int32 internalFormat, Int32 width, Int32 height, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage2DMultisampleNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)samples, (Int32)internalFormat, (Int32)width, (Int32)height, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage3DMultisampleCoverageNV")]
            public static 
            void TextureImage3DMultisampleCoverage(Int32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DMultisampleCoverageNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage3DMultisampleCoverageNV")]
            public static 
            void TextureImage3DMultisampleCoverage(UInt32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 coverageSamples, Int32 colorSamples, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DMultisampleCoverageNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)coverageSamples, (Int32)colorSamples, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage3DMultisampleNV")]
            public static 
            void TextureImage3DMultisample(Int32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 samples, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DMultisampleNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)samples, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_texture_multisample]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_texture_multisample", Version = "4.1", EntryPoint = "glTextureImage3DMultisampleNV")]
            public static 
            void TextureImage3DMultisample(UInt32 texture, OpenTK.Graphics.OpenGL.NvTextureMultisample target, Int32 samples, Int32 internalFormat, Int32 width, Int32 height, Int32 depth, bool fixedSampleLocations)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTextureImage3DMultisampleNV((UInt32)texture, (OpenTK.Graphics.OpenGL.NvTextureMultisample)target, (Int32)samples, (Int32)internalFormat, (Int32)width, (Int32)height, (Int32)depth, (bool)fixedSampleLocations);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glTrackMatrixNV")]
            public static 
            void TrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, Int32 address, OpenTK.Graphics.OpenGL.NvVertexProgram matrix, OpenTK.Graphics.OpenGL.NvVertexProgram transform)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTrackMatrixNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.NvVertexProgram)matrix, (OpenTK.Graphics.OpenGL.NvVertexProgram)transform);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glTrackMatrixNV")]
            public static 
            void TrackMatrix(OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb target, UInt32 address, OpenTK.Graphics.OpenGL.NvVertexProgram matrix, OpenTK.Graphics.OpenGL.NvVertexProgram transform)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTrackMatrixNV((OpenTK.Graphics.OpenGL.AssemblyProgramTargetArb)target, (UInt32)address, (OpenTK.Graphics.OpenGL.NvVertexProgram)matrix, (OpenTK.Graphics.OpenGL.NvVertexProgram)transform);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(Int32 count, Int32[] attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(Int32 count, ref Int32 attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = &attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            unsafe void TransformFeedbackAttrib(Int32 count, Int32* attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(UInt32 count, Int32[] attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            void TransformFeedbackAttrib(UInt32 count, ref Int32 attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = &attribs)
                    {
                        Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackAttribsNV")]
            public static 
            unsafe void TransformFeedbackAttrib(UInt32 count, Int32* attribs, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackAttribsNV((UInt32)count, (Int32*)attribs, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "4.1", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
            public static 
            void TransformFeedbackStreamAttrib(Int32 count, Int32[] attribs, Int32 nbuffers, Int32[] bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = attribs)
                    fixed (Int32* bufstreams_ptr = bufstreams)
                    {
                        Delegates.glTransformFeedbackStreamAttribsNV((Int32)count, (Int32*)attribs_ptr, (Int32)nbuffers, (Int32*)bufstreams_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "4.1", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
            public static 
            void TransformFeedbackStreamAttrib(Int32 count, ref Int32 attribs, Int32 nbuffers, ref Int32 bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* attribs_ptr = &attribs)
                    fixed (Int32* bufstreams_ptr = &bufstreams)
                    {
                        Delegates.glTransformFeedbackStreamAttribsNV((Int32)count, (Int32*)attribs_ptr, (Int32)nbuffers, (Int32*)bufstreams_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_transform_feedback]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "4.1", EntryPoint = "glTransformFeedbackStreamAttribsNV")]
            public static 
            unsafe void TransformFeedbackStreamAttrib(Int32 count, Int32* attribs, Int32 nbuffers, Int32* bufstreams, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackStreamAttribsNV((Int32)count, (Int32*)attribs, (Int32)nbuffers, (Int32*)bufstreams, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(Int32 program, Int32 count, Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* locations_ptr = locations)
                    {
                        Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(Int32 program, Int32 count, ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* locations_ptr = &locations)
                    {
                        Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            unsafe void TransformFeedbackVaryings(Int32 program, Int32 count, Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(UInt32 program, Int32 count, Int32[] locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* locations_ptr = locations)
                    {
                        Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            void TransformFeedbackVaryings(UInt32 program, Int32 count, ref Int32 locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* locations_ptr = &locations)
                    {
                        Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations_ptr, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_transform_feedback]
        /// Specify values to record in transform feedback buffers
        /// </summary>
        /// <param name="program">
        /// <para>
        /// The name of the target program object.
        /// </para>
        /// </param>
        /// <param name="count">
        /// <para>
        /// The number of varying variables used for transform feedback.
        /// </para>
        /// </param>
        /// <param name="varyings">
        /// <para>
        /// An array of count zero-terminated strings specifying the names of the varying variables to use for transform feedback.
        /// </para>
        /// </param>
        /// <param name="bufferMode">
        /// <para>
        /// Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be GL_INTERLEAVED_ATTRIBS or GL_SEPARATE_ATTRIBS.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_transform_feedback", Version = "1.5", EntryPoint = "glTransformFeedbackVaryingsNV")]
            public static 
            unsafe void TransformFeedbackVaryings(UInt32 program, Int32 count, Int32* locations, OpenTK.Graphics.OpenGL.NvTransformFeedback bufferMode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformFeedbackVaryingsNV((UInt32)program, (Int32)count, (Int32*)locations, (OpenTK.Graphics.OpenGL.NvTransformFeedback)bufferMode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            unsafe void TransformPath(Int32 resultPath, Int32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single[] transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = transformValues)
                    {
                        Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, ref Single transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* transformValues_ptr = &transformValues)
                    {
                        Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glTransformPathNV")]
            public static 
            unsafe void TransformPath(UInt32 resultPath, UInt32 srcPath, OpenTK.Graphics.OpenGL.NvPathRendering transformType, Single* transformValues)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTransformPathNV((UInt32)resultPath, (UInt32)srcPath, (OpenTK.Graphics.OpenGL.NvPathRendering)transformType, (Single*)transformValues);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1i64NV")]
            public static 
            void Uniform1(Int32 location, Int64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1i64NV((Int32)location, (Int64)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1i64vNV")]
            public static 
            void Uniform1(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniform1i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1i64vNV")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniform1i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1i64vNV")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1i64vNV((Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1ui64NV")]
            public static 
            void Uniform1(Int32 location, UInt64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1ui64NV((Int32)location, (UInt64)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1ui64vNV")]
            public static 
            void Uniform1(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniform1ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1ui64vNV")]
            public static 
            void Uniform1(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniform1ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform1ui64vNV")]
            public static 
            unsafe void Uniform1(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform1ui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2i64NV")]
            public static 
            void Uniform2(Int32 location, Int64 x, Int64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2i64NV((Int32)location, (Int64)x, (Int64)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2i64vNV")]
            public static 
            void Uniform2(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniform2i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2i64vNV")]
            public static 
            void Uniform2(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniform2i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2i64vNV")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2i64vNV((Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2ui64NV")]
            public static 
            void Uniform2(Int32 location, UInt64 x, UInt64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2ui64NV((Int32)location, (UInt64)x, (UInt64)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2ui64vNV")]
            public static 
            void Uniform2(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniform2ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2ui64vNV")]
            public static 
            void Uniform2(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniform2ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform2ui64vNV")]
            public static 
            unsafe void Uniform2(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform2ui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3i64NV")]
            public static 
            void Uniform3(Int32 location, Int64 x, Int64 y, Int64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3i64NV((Int32)location, (Int64)x, (Int64)y, (Int64)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3i64vNV")]
            public static 
            void Uniform3(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniform3i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3i64vNV")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniform3i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3i64vNV")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3i64vNV((Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3ui64NV")]
            public static 
            void Uniform3(Int32 location, UInt64 x, UInt64 y, UInt64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3ui64NV((Int32)location, (UInt64)x, (UInt64)y, (UInt64)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3ui64vNV")]
            public static 
            void Uniform3(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniform3ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3ui64vNV")]
            public static 
            void Uniform3(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniform3ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform3ui64vNV")]
            public static 
            unsafe void Uniform3(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform3ui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4i64NV")]
            public static 
            void Uniform4(Int32 location, Int64 x, Int64 y, Int64 z, Int64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4i64NV((Int32)location, (Int64)x, (Int64)y, (Int64)z, (Int64)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4i64vNV")]
            public static 
            void Uniform4(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniform4i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4i64vNV")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniform4i64vNV((Int32)location, (Int32)count, (Int64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4i64vNV")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4i64vNV((Int32)location, (Int32)count, (Int64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4ui64NV")]
            public static 
            void Uniform4(Int32 location, UInt64 x, UInt64 y, UInt64 z, UInt64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4ui64NV((Int32)location, (UInt64)x, (UInt64)y, (UInt64)z, (UInt64)w);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4ui64vNV")]
            public static 
            void Uniform4(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniform4ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4ui64vNV")]
            public static 
            void Uniform4(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniform4ui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_gpu_shader5]
        /// 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 = "NV_gpu_shader5", Version = "4.1", EntryPoint = "glUniform4ui64vNV")]
            public static 
            unsafe void Uniform4(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniform4ui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64NV")]
            public static 
            void UniformHandle(Int32 location, Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformHandleui64NV((Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64NV")]
            public static 
            void UniformHandle(Int32 location, UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformHandleui64NV((Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            void UniformHandle(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            void UniformHandle(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            unsafe void UniformHandle(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            void UniformHandle(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            void UniformHandle(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_bindless_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_bindless_texture", Version = "4.0", EntryPoint = "glUniformHandleui64vNV")]
            public static 
            unsafe void UniformHandle(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformHandleui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64NV")]
            public static 
            void Uniform(Int32 location, Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformui64NV((Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64NV")]
            public static 
            void Uniform(Int32 location, UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformui64NV((Int32)location, (UInt64)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            void Uniform(Int32 location, Int32 count, Int64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = value)
                    {
                        Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            void Uniform(Int32 location, Int32 count, ref Int64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* value_ptr = &value)
                    {
                        Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            unsafe void Uniform(Int32 location, Int32 count, Int64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            void Uniform(Int32 location, Int32 count, UInt64[] value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = value)
                    {
                        Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            void Uniform(Int32 location, Int32 count, ref UInt64 value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* value_ptr = &value)
                    {
                        Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_shader_buffer_load]
        /// 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 = "NV_shader_buffer_load", Version = "1.2", EntryPoint = "glUniformui64vNV")]
            public static 
            unsafe void Uniform(Int32 location, Int32 count, UInt64* value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glUniformui64vNV((Int32)location, (Int32)count, (UInt64*)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUFiniNV")]
            public static 
            void VDPAUFin()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUFiniNV();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUGetSurfaceivNV")]
            public static 
            void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32[] length, [OutAttribute] Int32[] values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = length)
                    fixed (Int32* values_ptr = values)
                    {
                        Delegates.glVDPAUGetSurfaceivNV((IntPtr)surface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)pname, (Int32)bufSize, (Int32*)length_ptr, (Int32*)values_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUGetSurfaceivNV")]
            public static 
            void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] out Int32 length, [OutAttribute] out Int32 values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* length_ptr = &length)
                    fixed (Int32* values_ptr = &values)
                    {
                        Delegates.glVDPAUGetSurfaceivNV((IntPtr)surface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)pname, (Int32)bufSize, (Int32*)length_ptr, (Int32*)values_ptr);
                        length = *length_ptr;
                        values = *values_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUGetSurfaceivNV")]
            public static 
            unsafe void VDPAUGetSurface(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop pname, Int32 bufSize, [OutAttribute] Int32* length, [OutAttribute] Int32* values)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUGetSurfaceivNV((IntPtr)surface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)pname, (Int32)bufSize, (Int32*)length, (Int32*)values);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUInitNV")]
            public static 
            void VDPAUInit(IntPtr vdpDevice, IntPtr getProcAddress)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUInitNV((IntPtr)vdpDevice, (IntPtr)getProcAddress);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUInitNV")]
            public static 
            void VDPAUInit<T0,T1>([InAttribute, OutAttribute] T0[] vdpDevice, [InAttribute, OutAttribute] T1[] getProcAddress)
                where T0 : struct
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpDevice_ptr = GCHandle.Alloc(vdpDevice, GCHandleType.Pinned);
                GCHandle getProcAddress_ptr = GCHandle.Alloc(getProcAddress, GCHandleType.Pinned);
                try
                {
                    Delegates.glVDPAUInitNV((IntPtr)vdpDevice_ptr.AddrOfPinnedObject(), (IntPtr)getProcAddress_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    vdpDevice_ptr.Free();
                    getProcAddress_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUInitNV")]
            public static 
            void VDPAUInit<T0,T1>([InAttribute, OutAttribute] T0[,] vdpDevice, [InAttribute, OutAttribute] T1[,] getProcAddress)
                where T0 : struct
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpDevice_ptr = GCHandle.Alloc(vdpDevice, GCHandleType.Pinned);
                GCHandle getProcAddress_ptr = GCHandle.Alloc(getProcAddress, GCHandleType.Pinned);
                try
                {
                    Delegates.glVDPAUInitNV((IntPtr)vdpDevice_ptr.AddrOfPinnedObject(), (IntPtr)getProcAddress_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    vdpDevice_ptr.Free();
                    getProcAddress_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUInitNV")]
            public static 
            void VDPAUInit<T0,T1>([InAttribute, OutAttribute] T0[,,] vdpDevice, [InAttribute, OutAttribute] T1[,,] getProcAddress)
                where T0 : struct
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpDevice_ptr = GCHandle.Alloc(vdpDevice, GCHandleType.Pinned);
                GCHandle getProcAddress_ptr = GCHandle.Alloc(getProcAddress, GCHandleType.Pinned);
                try
                {
                    Delegates.glVDPAUInitNV((IntPtr)vdpDevice_ptr.AddrOfPinnedObject(), (IntPtr)getProcAddress_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    vdpDevice_ptr.Free();
                    getProcAddress_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUInitNV")]
            public static 
            void VDPAUInit<T0,T1>([InAttribute, OutAttribute] ref T0 vdpDevice, [InAttribute, OutAttribute] ref T1 getProcAddress)
                where T0 : struct
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpDevice_ptr = GCHandle.Alloc(vdpDevice, GCHandleType.Pinned);
                GCHandle getProcAddress_ptr = GCHandle.Alloc(getProcAddress, GCHandleType.Pinned);
                try
                {
                    Delegates.glVDPAUInitNV((IntPtr)vdpDevice_ptr.AddrOfPinnedObject(), (IntPtr)getProcAddress_ptr.AddrOfPinnedObject());
                    vdpDevice = (T0)vdpDevice_ptr.Target;
                    getProcAddress = (T1)getProcAddress_ptr.Target;
                }
                finally
                {
                    vdpDevice_ptr.Free();
                    getProcAddress_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUIsSurfaceNV")]
            public static 
            void VDPAUIsSurface(IntPtr surface)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUIsSurfaceNV((IntPtr)surface);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUMapSurfacesNV")]
            public static 
            void VDPAUMapSurfaces(Int32 numSurfaces, IntPtr[] surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (IntPtr* surfaces_ptr = surfaces)
                    {
                        Delegates.glVDPAUMapSurfacesNV((Int32)numSurfaces, (IntPtr*)surfaces_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUMapSurfacesNV")]
            public static 
            void VDPAUMapSurfaces(Int32 numSurfaces, ref IntPtr surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (IntPtr* surfaces_ptr = &surfaces)
                    {
                        Delegates.glVDPAUMapSurfacesNV((Int32)numSurfaces, (IntPtr*)surfaces_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUMapSurfacesNV")]
            public static 
            unsafe void VDPAUMapSurfaces(Int32 numSurfaces, IntPtr* surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUMapSurfacesNV((Int32)numSurfaces, (IntPtr*)surfaces);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface([OutAttribute] IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                    vdpSurface = (T0)vdpSurface_ptr.Target;
                    return retval;
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterOutputSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterOutputSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    IntPtr retval = Delegates.glVDPAURegisterOutputSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                    vdpSurface = (T0)vdpSurface_ptr.Target;
                    return retval;
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface(IntPtr vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] T0[,,] vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    return Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref Int32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, Int32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                    vdpSurface = (T0)vdpSurface_ptr.Target;
                    return retval;
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32[] textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, ref UInt32 textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textureNames_ptr = &textureNames)
                    {
                        GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                        try
                        {
                            IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames_ptr);
                            vdpSurface = (T0)vdpSurface_ptr.Target;
                            return retval;
                        }
                        finally
                        {
                            vdpSurface_ptr.Free();
                        }
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAURegisterVideoSurfaceNV")]
            public static 
            unsafe IntPtr VDPAURegisterVideoSurface<T0>([InAttribute, OutAttribute] ref T0 vdpSurface, OpenTK.Graphics.OpenGL.NvVdpauInterop target, Int32 numTextureNames, UInt32* textureNames)
                where T0 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle vdpSurface_ptr = GCHandle.Alloc(vdpSurface, GCHandleType.Pinned);
                try
                {
                    IntPtr retval = Delegates.glVDPAURegisterVideoSurfaceNV((IntPtr)vdpSurface_ptr.AddrOfPinnedObject(), (OpenTK.Graphics.OpenGL.NvVdpauInterop)target, (Int32)numTextureNames, (UInt32*)textureNames);
                    vdpSurface = (T0)vdpSurface_ptr.Target;
                    return retval;
                }
                finally
                {
                    vdpSurface_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUSurfaceAccessNV")]
            public static 
            void VDPAUSurfaceAccess(IntPtr surface, OpenTK.Graphics.OpenGL.NvVdpauInterop access)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUSurfaceAccessNV((IntPtr)surface, (OpenTK.Graphics.OpenGL.NvVdpauInterop)access);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUUnmapSurfacesNV")]
            public static 
            void VDPAUUnmapSurfaces(Int32 numSurface, IntPtr[] surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (IntPtr* surfaces_ptr = surfaces)
                    {
                        Delegates.glVDPAUUnmapSurfacesNV((Int32)numSurface, (IntPtr*)surfaces_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUUnmapSurfacesNV")]
            public static 
            void VDPAUUnmapSurfaces(Int32 numSurface, ref IntPtr surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (IntPtr* surfaces_ptr = &surfaces)
                    {
                        Delegates.glVDPAUUnmapSurfacesNV((Int32)numSurface, (IntPtr*)surfaces_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUUnmapSurfacesNV")]
            public static 
            unsafe void VDPAUUnmapSurfaces(Int32 numSurface, IntPtr* surfaces)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUUnmapSurfacesNV((Int32)numSurface, (IntPtr*)surfaces);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vdpau_interop]</summary>
            [AutoGenerated(Category = "NV_vdpau_interop", Version = "4.1", EntryPoint = "glVDPAUUnregisterSurfaceNV")]
            public static 
            void VDPAUUnregisterSurface(IntPtr surface)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVDPAUUnregisterSurfaceNV((IntPtr)surface);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex2hNV")]
            public static 
            void Vertex2h(Half x, Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2hNV((Half)x, (Half)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            void Vertex2h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertex2hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            void Vertex2h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertex2hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex2hvNV")]
            public static 
            unsafe void Vertex2h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex3hNV")]
            public static 
            void Vertex3h(Half x, Half y, Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3hNV((Half)x, (Half)y, (Half)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            void Vertex3h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertex3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            void Vertex3h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertex3hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex3hvNV")]
            public static 
            unsafe void Vertex3h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex4hNV")]
            public static 
            void Vertex4h(Half x, Half y, Half z, Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4hNV((Half)x, (Half)y, (Half)z, (Half)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            void Vertex4h(Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertex4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            void Vertex4h(ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertex4hvNV((Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertex4hvNV")]
            public static 
            unsafe void Vertex4h(Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4hvNV((Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", 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>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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
            }

            /// <summary>[requires: NV_vertex_array_range]</summary>
            [AutoGenerated(Category = "NV_vertex_array_range", Version = "1.1", EntryPoint = "glVertexArrayRangeNV")]
            public static 
            void VertexArrayRange<T1>(Int32 length, [InAttribute, OutAttribute] 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());
                    pointer = (T1)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib1hNV")]
            public static 
            void VertexAttrib1h(Int32 index, Half x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hNV((UInt32)index, (Half)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib1hNV")]
            public static 
            void VertexAttrib1h(UInt32 index, Half x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hNV((UInt32)index, (Half)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib1hvNV")]
            public static 
            unsafe void VertexAttrib1h(Int32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib1hvNV")]
            public static 
            unsafe void VertexAttrib1h(UInt32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib1hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hNV")]
            public static 
            void VertexAttrib2h(Int32 index, Half x, Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hNV((UInt32)index, (Half)x, (Half)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hNV")]
            public static 
            void VertexAttrib2h(UInt32 index, Half x, Half y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hNV((UInt32)index, (Half)x, (Half)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(Int32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(Int32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            unsafe void VertexAttrib2h(Int32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(UInt32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            void VertexAttrib2h(UInt32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib2hvNV")]
            public static 
            unsafe void VertexAttrib2h(UInt32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib2hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hNV")]
            public static 
            void VertexAttrib3h(Int32 index, Half x, Half y, Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hNV((UInt32)index, (Half)x, (Half)y, (Half)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hNV")]
            public static 
            void VertexAttrib3h(UInt32 index, Half x, Half y, Half z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hNV((UInt32)index, (Half)x, (Half)y, (Half)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(Int32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(Int32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            unsafe void VertexAttrib3h(Int32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(UInt32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            void VertexAttrib3h(UInt32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib3hvNV")]
            public static 
            unsafe void VertexAttrib3h(UInt32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib3hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hNV")]
            public static 
            void VertexAttrib4h(Int32 index, Half x, Half y, Half z, Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hNV((UInt32)index, (Half)x, (Half)y, (Half)z, (Half)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hNV")]
            public static 
            void VertexAttrib4h(UInt32 index, Half x, Half y, Half z, Half w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hNV((UInt32)index, (Half)x, (Half)y, (Half)z, (Half)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(Int32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(Int32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            unsafe void VertexAttrib4h(Int32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(UInt32 index, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            void VertexAttrib4h(UInt32 index, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttrib4hvNV")]
            public static 
            unsafe void VertexAttrib4h(UInt32 index, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttrib4hvNV((UInt32)index, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_program]
        /// Specifies the value of a generic vertex attribute
        /// </summary>
        /// <param name="index">
        /// <para>
        /// Specifies the index of the generic vertex 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 = "NV_vertex_program", 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>[requires: NV_vertex_buffer_unified_memory]
        /// Specify the organization of vertex arrays
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The generic vertex attribute array being described.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The number of values per vertex that are stored in the array.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data stored in the array.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        /// <param name="relativeoffset">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glVertexAttribFormatNV")]
            public static 
            void VertexAttribFormat(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, bool normalized, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (bool)normalized, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_buffer_unified_memory]
        /// Specify the organization of vertex arrays
        /// </summary>
        /// <param name="attribindex">
        /// <para>
        /// The generic vertex attribute array being described.
        /// </para>
        /// </param>
        /// <param name="size">
        /// <para>
        /// The number of values per vertex that are stored in the array.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// The type of the data stored in the array.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
        /// <param name="relativeoffset">
        /// <para>
        /// The distance between elements within the buffer.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glVertexAttribFormatNV")]
            public static 
            void VertexAttribFormat(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, bool normalized, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (bool)normalized, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glVertexAttribIFormatNV")]
            public static 
            void VertexAttribIFormat(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glVertexAttribIFormatNV")]
            public static 
            void VertexAttribIFormat(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribIFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1i64NV")]
            public static 
            void VertexAttribL1(Int32 index, Int64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1i64NV((UInt32)index, (Int64)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1i64NV")]
            public static 
            void VertexAttribL1(UInt32 index, Int64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1i64NV((UInt32)index, (Int64)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1i64vNV")]
            public static 
            unsafe void VertexAttribL1(Int32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1i64vNV")]
            public static 
            unsafe void VertexAttribL1(UInt32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1ui64NV")]
            public static 
            void VertexAttribL1(UInt32 index, UInt64 x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1ui64NV((UInt32)index, (UInt64)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL1ui64vNV")]
            public static 
            unsafe void VertexAttribL1(UInt32 index, UInt64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL1ui64vNV((UInt32)index, (UInt64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64NV")]
            public static 
            void VertexAttribL2(Int32 index, Int64 x, Int64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2i64NV((UInt32)index, (Int64)x, (Int64)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64NV")]
            public static 
            void VertexAttribL2(UInt32 index, Int64 x, Int64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2i64NV((UInt32)index, (Int64)x, (Int64)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            void VertexAttribL2(Int32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            void VertexAttribL2(Int32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            unsafe void VertexAttribL2(Int32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            void VertexAttribL2(UInt32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            void VertexAttribL2(UInt32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2i64vNV")]
            public static 
            unsafe void VertexAttribL2(UInt32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2ui64NV")]
            public static 
            void VertexAttribL2(UInt32 index, UInt64 x, UInt64 y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2ui64NV((UInt32)index, (UInt64)x, (UInt64)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2ui64vNV")]
            public static 
            void VertexAttribL2(UInt32 index, UInt64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL2ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2ui64vNV")]
            public static 
            void VertexAttribL2(UInt32 index, ref UInt64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL2ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL2ui64vNV")]
            public static 
            unsafe void VertexAttribL2(UInt32 index, UInt64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL2ui64vNV((UInt32)index, (UInt64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64NV")]
            public static 
            void VertexAttribL3(Int32 index, Int64 x, Int64 y, Int64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3i64NV((UInt32)index, (Int64)x, (Int64)y, (Int64)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64NV")]
            public static 
            void VertexAttribL3(UInt32 index, Int64 x, Int64 y, Int64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3i64NV((UInt32)index, (Int64)x, (Int64)y, (Int64)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            void VertexAttribL3(Int32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            void VertexAttribL3(Int32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            unsafe void VertexAttribL3(Int32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            void VertexAttribL3(UInt32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            void VertexAttribL3(UInt32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3i64vNV")]
            public static 
            unsafe void VertexAttribL3(UInt32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3ui64NV")]
            public static 
            void VertexAttribL3(UInt32 index, UInt64 x, UInt64 y, UInt64 z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3ui64NV((UInt32)index, (UInt64)x, (UInt64)y, (UInt64)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3ui64vNV")]
            public static 
            void VertexAttribL3(UInt32 index, UInt64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL3ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3ui64vNV")]
            public static 
            void VertexAttribL3(UInt32 index, ref UInt64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL3ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL3ui64vNV")]
            public static 
            unsafe void VertexAttribL3(UInt32 index, UInt64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL3ui64vNV((UInt32)index, (UInt64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64NV")]
            public static 
            void VertexAttribL4(Int32 index, Int64 x, Int64 y, Int64 z, Int64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4i64NV((UInt32)index, (Int64)x, (Int64)y, (Int64)z, (Int64)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64NV")]
            public static 
            void VertexAttribL4(UInt32 index, Int64 x, Int64 y, Int64 z, Int64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4i64NV((UInt32)index, (Int64)x, (Int64)y, (Int64)z, (Int64)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            void VertexAttribL4(Int32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            void VertexAttribL4(Int32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            unsafe void VertexAttribL4(Int32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            void VertexAttribL4(UInt32 index, Int64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            void VertexAttribL4(UInt32 index, ref Int64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4i64vNV")]
            public static 
            unsafe void VertexAttribL4(UInt32 index, Int64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4i64vNV((UInt32)index, (Int64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4ui64NV")]
            public static 
            void VertexAttribL4(UInt32 index, UInt64 x, UInt64 y, UInt64 z, UInt64 w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4ui64NV((UInt32)index, (UInt64)x, (UInt64)y, (UInt64)z, (UInt64)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4ui64vNV")]
            public static 
            void VertexAttribL4(UInt32 index, UInt64[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = v)
                    {
                        Delegates.glVertexAttribL4ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4ui64vNV")]
            public static 
            void VertexAttribL4(UInt32 index, ref UInt64 v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt64* v_ptr = &v)
                    {
                        Delegates.glVertexAttribL4ui64vNV((UInt32)index, (UInt64*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribL4ui64vNV")]
            public static 
            unsafe void VertexAttribL4(UInt32 index, UInt64* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribL4ui64vNV((UInt32)index, (UInt64*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribLFormatNV")]
            public static 
            void VertexAttribLFormat(Int32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribLFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_attrib_integer_64bit]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_attrib_integer_64bit", Version = "4.1", EntryPoint = "glVertexAttribLFormatNV")]
            public static 
            void VertexAttribLFormat(UInt32 index, Int32 size, OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribLFormatNV((UInt32)index, (Int32)size, (OpenTK.Graphics.OpenGL.NvVertexAttribInteger64bit)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(Int32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribPointerNV((UInt32)index, (Int32)fsize, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NV_vertex_program]
        /// 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, 4. Additionally, the symbolic constant GL_BGRA is accepted by glVertexAttribPointer. The initial value is 4.
        /// </para>
        /// </param>
        /// <param name="type">
        /// <para>
        /// Specifies the data type of each component in the array. The symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, and GL_UNSIGNED_INT are accepted by glVertexAttribPointer and glVertexAttribIPointer. Additionally GL_HALF_FLOAT, GL_FLOAT, GL_DOUBLE, GL_FIXED, GL_INT_2_10_10_10_REV, GL_UNSIGNED_INT_2_10_10_10_REV and GL_UNSIGNED_INT_10F_11F_11F_REV are accepted by glVertexAttribPointer. GL_DOUBLE is also accepted by glVertexAttribLPointer and is the only token accepted by the type parameter for that function. The initial value is GL_FLOAT.
        /// </para>
        /// </param>
        /// <param name="normalized">
        /// <para>
        /// For glVertexAttribPointer, 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 offset of the first component of the first generic vertex attribute in the array in the data store of the buffer currently bound to the GL_ARRAY_BUFFER target. The initial value is 0.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", Version = "1.2", EntryPoint = "glVertexAttribPointerNV")]
            public static 
            void VertexAttribPointer<T4>(UInt32 index, Int32 fsize, OpenTK.Graphics.OpenGL.VertexAttribParameterArb type, Int32 stride, [InAttribute, OutAttribute] 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, (OpenTK.Graphics.OpenGL.VertexAttribParameterArb)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T4)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(Int32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(Int32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            unsafe void VertexAttribs1h(Int32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(UInt32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            void VertexAttribs1h(UInt32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs1hvNV")]
            public static 
            unsafe void VertexAttribs1h(UInt32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs1hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(Int32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(Int32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            unsafe void VertexAttribs2h(Int32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(UInt32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            void VertexAttribs2h(UInt32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs2hvNV")]
            public static 
            unsafe void VertexAttribs2h(UInt32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs2hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(Int32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(Int32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            unsafe void VertexAttribs3h(Int32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(UInt32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            void VertexAttribs3h(UInt32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs3hvNV")]
            public static 
            unsafe void VertexAttribs3h(UInt32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs3hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(Int32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(Int32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            unsafe void VertexAttribs4h(Int32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(UInt32 index, Int32 n, Half[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            void VertexAttribs4h(UInt32 index, Int32 n, ref Half v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Half* v_ptr = &v)
                    {
                        Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexAttribs4hvNV")]
            public static 
            unsafe void VertexAttribs4h(UInt32 index, Int32 n, Half* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexAttribs4hvNV((UInt32)index, (Int32)n, (Half*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_program]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_vertex_program", 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
            }

            /// <summary>[requires: NV_vertex_buffer_unified_memory]</summary>
            [AutoGenerated(Category = "NV_vertex_buffer_unified_memory", Version = "1.2", EntryPoint = "glVertexFormatNV")]
            public static 
            void VertexFormat(Int32 size, OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory type, Int32 stride)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexFormatNV((Int32)size, (OpenTK.Graphics.OpenGL.NvVertexBufferUnifiedMemory)type, (Int32)stride);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexWeighthNV")]
            public static 
            void VertexWeighth(Half weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeighthNV((Half)weight);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_half_float]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_half_float", Version = "1.2", EntryPoint = "glVertexWeighthvNV")]
            public static 
            unsafe void VertexWeighth(Half* weight)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertexWeighthvNV((Half*)weight);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(Int32 video_capture_slot, [OutAttribute] Int32[] sequence_num, [OutAttribute] Int64[] capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* sequence_num_ptr = sequence_num)
                    fixed (Int64* capture_time_ptr = capture_time)
                    {
                        return Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num_ptr, (UInt64*)capture_time_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(Int32 video_capture_slot, [OutAttribute] out Int32 sequence_num, [OutAttribute] out Int64 capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* sequence_num_ptr = &sequence_num)
                    fixed (Int64* capture_time_ptr = &capture_time)
                    {
                        OpenTK.Graphics.OpenGL.NvVideoCapture retval = Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num_ptr, (UInt64*)capture_time_ptr);
                        sequence_num = *sequence_num_ptr;
                        capture_time = *capture_time_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            unsafe OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(Int32 video_capture_slot, [OutAttribute] Int32* sequence_num, [OutAttribute] Int64* capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num, (UInt64*)capture_time);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(UInt32 video_capture_slot, [OutAttribute] UInt32[] sequence_num, [OutAttribute] UInt64[] capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* sequence_num_ptr = sequence_num)
                    fixed (UInt64* capture_time_ptr = capture_time)
                    {
                        return Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num_ptr, (UInt64*)capture_time_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(UInt32 video_capture_slot, [OutAttribute] out UInt32 sequence_num, [OutAttribute] out UInt64 capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* sequence_num_ptr = &sequence_num)
                    fixed (UInt64* capture_time_ptr = &capture_time)
                    {
                        OpenTK.Graphics.OpenGL.NvVideoCapture retval = Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num_ptr, (UInt64*)capture_time_ptr);
                        sequence_num = *sequence_num_ptr;
                        capture_time = *capture_time_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureNV")]
            public static 
            unsafe OpenTK.Graphics.OpenGL.NvVideoCapture VideoCapture(UInt32 video_capture_slot, [OutAttribute] UInt32* sequence_num, [OutAttribute] UInt64* capture_time)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glVideoCaptureNV((UInt32)video_capture_slot, (UInt32*)sequence_num, (UInt64*)capture_time);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Double @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Double* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterdvNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Double* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterdvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Double*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterfvNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterfvNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(Int32 video_capture_slot, Int32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_video_capture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_video_capture", Version = "1.2", EntryPoint = "glVideoCaptureStreamParameterivNV")]
            public static 
            unsafe void VideoCaptureStreamParameter(UInt32 video_capture_slot, UInt32 stream, OpenTK.Graphics.OpenGL.NvVideoCapture pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVideoCaptureStreamParameterivNV((UInt32)video_capture_slot, (UInt32)stream, (OpenTK.Graphics.OpenGL.NvVideoCapture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            void WeightPath(Int32 resultPath, Int32 numPaths, Int32[] paths, Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* paths_ptr = paths)
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths_ptr, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            void WeightPath(Int32 resultPath, Int32 numPaths, ref Int32 paths, ref Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* paths_ptr = &paths)
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths_ptr, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            unsafe void WeightPath(Int32 resultPath, Int32 numPaths, Int32* paths, Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            void WeightPath(UInt32 resultPath, Int32 numPaths, UInt32[] paths, Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* paths_ptr = paths)
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths_ptr, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            void WeightPath(UInt32 resultPath, Int32 numPaths, ref UInt32 paths, ref Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* paths_ptr = &paths)
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths_ptr, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NV_path_rendering]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NV_path_rendering", Version = "1.1", EntryPoint = "glWeightPathsNV")]
            public static 
            unsafe void WeightPath(UInt32 resultPath, Int32 numPaths, UInt32* paths, Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glWeightPathsNV((UInt32)resultPath, (Int32)numPaths, (UInt32*)paths, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Nvx
        {
            
        /// <summary>[requires: NVX_conditional_render]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
            [AutoGenerated(Category = "NVX_conditional_render", Version = "4.3", EntryPoint = "glBeginConditionalRenderNVX")]
            public static 
            void BeginConditionalRender(Int32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNVX((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: NVX_conditional_render]
        /// Start conditional rendering
        /// </summary>
        /// <param name="id">
        /// <para>
        /// Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.
        /// </para>
        /// </param>
        /// <param name="mode">
        /// <para>
        /// Specifies how glBeginConditionalRender interprets the results of the occlusion query.
        /// </para>
        /// </param>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "NVX_conditional_render", Version = "4.3", EntryPoint = "glBeginConditionalRenderNVX")]
            public static 
            void BeginConditionalRender(UInt32 id)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBeginConditionalRenderNVX((UInt32)id);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: NVX_conditional_render]</summary>
            [AutoGenerated(Category = "NVX_conditional_render", Version = "4.3", EntryPoint = "glEndConditionalRenderNVX")]
            public static 
            void EndConditionalRender()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEndConditionalRenderNVX();
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Oes
        {
            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glAccumxOES")]
            public static 
            void Accumx(OpenTK.Graphics.OpenGL.OesFixedPoint op, int value)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAccumxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)op, (int)value);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glAlphaFuncxOES")]
            public static 
            void AlphaFuncx(OpenTK.Graphics.OpenGL.OesFixedPoint func, int @ref)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glAlphaFuncxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)func, (int)@ref);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glBitmapxOES")]
            public static 
            void Bitmapx(Int32 width, Int32 height, int xorig, int yorig, int xmove, int ymove, Byte[] bitmap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* bitmap_ptr = bitmap)
                    {
                        Delegates.glBitmapxOES((Int32)width, (Int32)height, (int)xorig, (int)yorig, (int)xmove, (int)ymove, (Byte*)bitmap_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glBitmapxOES")]
            public static 
            void Bitmapx(Int32 width, Int32 height, int xorig, int yorig, int xmove, int ymove, ref Byte bitmap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* bitmap_ptr = &bitmap)
                    {
                        Delegates.glBitmapxOES((Int32)width, (Int32)height, (int)xorig, (int)yorig, (int)xmove, (int)ymove, (Byte*)bitmap_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glBitmapxOES")]
            public static 
            unsafe void Bitmapx(Int32 width, Int32 height, int xorig, int yorig, int xmove, int ymove, Byte* bitmap)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBitmapxOES((Int32)width, (Int32)height, (int)xorig, (int)yorig, (int)xmove, (int)ymove, (Byte*)bitmap);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glBlendColorxOES")]
            public static 
            void BlendColorx(int red, int green, int blue, int alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glBlendColorxOES((int)red, (int)green, (int)blue, (int)alpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClearAccumxOES")]
            public static 
            void ClearAccumx(int red, int green, int blue, int alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearAccumxOES((int)red, (int)green, (int)blue, (int)alpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClearColorxOES")]
            public static 
            void ClearColorx(int red, int green, int blue, int alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearColorxOES((int)red, (int)green, (int)blue, (int)alpha);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glClearDepthfOES")]
            public static 
            void ClearDepth(Single depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearDepthfOES((Single)depth);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClearDepthxOES")]
            public static 
            void ClearDepthx(int depth)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClearDepthxOES((int)depth);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glClipPlanefOES")]
            public static 
            void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, Single[] equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* equation_ptr = equation)
                    {
                        Delegates.glClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glClipPlanefOES")]
            public static 
            void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, ref Single equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* equation_ptr = &equation)
                    {
                        Delegates.glClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glClipPlanefOES")]
            public static 
            unsafe void ClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, Single* equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClipPlanexOES")]
            public static 
            void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, int[] equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* equation_ptr = equation)
                    {
                        Delegates.glClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClipPlanexOES")]
            public static 
            void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, ref int equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* equation_ptr = &equation)
                    {
                        Delegates.glClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glClipPlanexOES")]
            public static 
            unsafe void ClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, int* equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor3xOES")]
            public static 
            void Color3x(int red, int green, int blue)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3xOES((int)red, (int)green, (int)blue);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor3xvOES")]
            public static 
            void Color3x(int[] components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* components_ptr = components)
                    {
                        Delegates.glColor3xvOES((int*)components_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor3xvOES")]
            public static 
            void Color3x(ref int components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* components_ptr = &components)
                    {
                        Delegates.glColor3xvOES((int*)components_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor3xvOES")]
            public static 
            unsafe void Color3x(int* components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor3xvOES((int*)components);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor4xOES")]
            public static 
            void Color4x(int red, int green, int blue, int alpha)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4xOES((int)red, (int)green, (int)blue, (int)alpha);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor4xvOES")]
            public static 
            void Color4x(int[] components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* components_ptr = components)
                    {
                        Delegates.glColor4xvOES((int*)components_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor4xvOES")]
            public static 
            void Color4x(ref int components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* components_ptr = &components)
                    {
                        Delegates.glColor4xvOES((int*)components_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glColor4xvOES")]
            public static 
            unsafe void Color4x(int* components)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColor4xvOES((int*)components);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glConvolutionParameterxOES")]
            public static 
            void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glConvolutionParameterxvOES")]
            public static 
            void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glConvolutionParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glConvolutionParameterxvOES")]
            public static 
            unsafe void ConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glConvolutionParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glDepthRangefOES")]
            public static 
            void DepthRange(Single n, Single f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDepthRangefOES((Single)n, (Single)f);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glDepthRangexOES")]
            public static 
            void DepthRangex(int n, int f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDepthRangexOES((int)n, (int)f);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord1xOES")]
            public static 
            void EvalCoord1x(int u)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalCoord1xOES((int)u);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord1xvOES")]
            public static 
            unsafe void EvalCoord1x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalCoord1xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord2xOES")]
            public static 
            void EvalCoord2x(int u, int v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalCoord2xOES((int)u, (int)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord2xvOES")]
            public static 
            void EvalCoord2x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glEvalCoord2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord2xvOES")]
            public static 
            void EvalCoord2x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glEvalCoord2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glEvalCoord2xvOES")]
            public static 
            unsafe void EvalCoord2x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glEvalCoord2xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFeedbackBufferxOES")]
            public static 
            void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, int[] buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* buffer_ptr = buffer)
                    {
                        Delegates.glFeedbackBufferxOES((Int32)n, (OpenTK.Graphics.OpenGL.OesFixedPoint)type, (int*)buffer_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFeedbackBufferxOES")]
            public static 
            void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, ref int buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* buffer_ptr = &buffer)
                    {
                        Delegates.glFeedbackBufferxOES((Int32)n, (OpenTK.Graphics.OpenGL.OesFixedPoint)type, (int*)buffer_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFeedbackBufferxOES")]
            public static 
            unsafe void FeedbackBufferx(Int32 n, OpenTK.Graphics.OpenGL.OesFixedPoint type, int* buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFeedbackBufferxOES((Int32)n, (OpenTK.Graphics.OpenGL.OesFixedPoint)type, (int*)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFogxOES")]
            public static 
            void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFogxvOES")]
            public static 
            void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* param_ptr = param)
                    {
                        Delegates.glFogxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFogxvOES")]
            public static 
            unsafe void Fogx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFogxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glFrustumfOES")]
            public static 
            void Frustum(Single l, Single r, Single b, Single t, Single n, Single f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFrustumfOES((Single)l, (Single)r, (Single)b, (Single)t, (Single)n, (Single)f);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glFrustumxOES")]
            public static 
            void Frustumx(int l, int r, int b, int t, int n, int f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFrustumxOES((int)l, (int)r, (int)b, (int)t, (int)n, (int)f);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glGetClipPlanefOES")]
            public static 
            void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] Single[] equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* equation_ptr = equation)
                    {
                        Delegates.glGetClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glGetClipPlanefOES")]
            public static 
            void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] out Single equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* equation_ptr = &equation)
                    {
                        Delegates.glGetClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation_ptr);
                        equation = *equation_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glGetClipPlanefOES")]
            public static 
            unsafe void GetClipPlane(OpenTK.Graphics.OpenGL.OesSinglePrecision plane, [OutAttribute] Single* equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetClipPlanefOES((OpenTK.Graphics.OpenGL.OesSinglePrecision)plane, (Single*)equation);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetClipPlanexOES")]
            public static 
            void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] int[] equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* equation_ptr = equation)
                    {
                        Delegates.glGetClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetClipPlanexOES")]
            public static 
            void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] out int equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* equation_ptr = &equation)
                    {
                        Delegates.glGetClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation_ptr);
                        equation = *equation_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetClipPlanexOES")]
            public static 
            unsafe void GetClipPlanex(OpenTK.Graphics.OpenGL.OesFixedPoint plane, [OutAttribute] int* equation)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetClipPlanexOES((OpenTK.Graphics.OpenGL.OesFixedPoint)plane, (int*)equation);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetConvolutionParameterxvOES")]
            public static 
            void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetConvolutionParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetConvolutionParameterxvOES")]
            public static 
            void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetConvolutionParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetConvolutionParameterxvOES")]
            public static 
            unsafe void GetConvolutionParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetConvolutionParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetFixedvOES")]
            public static 
            void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetFixedvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetFixedvOES")]
            public static 
            void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetFixedvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetFixedvOES")]
            public static 
            unsafe void GetFixed(OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFixedvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetHistogramParameterxvOES")]
            public static 
            void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetHistogramParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetHistogramParameterxvOES")]
            public static 
            void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetHistogramParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetHistogramParameterxvOES")]
            public static 
            unsafe void GetHistogramParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetHistogramParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetLightxOES")]
            public static 
            void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetLightxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetLightxOES")]
            public static 
            void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetLightxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetLightxOES")]
            public static 
            unsafe void GetLightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetLightxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetMapxvOES")]
            public static 
            void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] int[] v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* v_ptr = v)
                    {
                        Delegates.glGetMapxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)query, (int*)v_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetMapxvOES")]
            public static 
            void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] out int v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* v_ptr = &v)
                    {
                        Delegates.glGetMapxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)query, (int*)v_ptr);
                        v = *v_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetMapxvOES")]
            public static 
            unsafe void GetMapx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint query, [OutAttribute] int* v)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMapxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)query, (int*)v);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetMaterialxOES")]
            public static 
            void GetMaterialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetMaterialxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)face, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexEnvxvOES")]
            public static 
            void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetTexEnvxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexEnvxvOES")]
            public static 
            void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetTexEnvxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexEnvxvOES")]
            public static 
            unsafe void GetTexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexEnvxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexGenxvOES")]
            public static 
            void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetTexGenxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexGenxvOES")]
            public static 
            void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetTexGenxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexGenxvOES")]
            public static 
            unsafe void GetTexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexGenxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexLevelParameterxvOES")]
            public static 
            void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetTexLevelParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (Int32)level, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexLevelParameterxvOES")]
            public static 
            void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetTexLevelParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (Int32)level, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexLevelParameterxvOES")]
            public static 
            unsafe void GetTexLevelParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, Int32 level, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexLevelParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (Int32)level, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexParameterxvOES")]
            public static 
            void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glGetTexParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexParameterxvOES")]
            public static 
            void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] out int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glGetTexParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glGetTexParameterxvOES")]
            public static 
            unsafe void GetTexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, [OutAttribute] int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glIndexxOES")]
            public static 
            void Indexx(int component)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexxOES((int)component);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glIndexxvOES")]
            public static 
            unsafe void Indexx(int* component)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIndexxvOES((int*)component);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightModelxOES")]
            public static 
            void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightModelxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightModelxvOES")]
            public static 
            void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* param_ptr = param)
                    {
                        Delegates.glLightModelxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightModelxvOES")]
            public static 
            unsafe void LightModelx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightModelxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightxOES")]
            public static 
            void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightxvOES")]
            public static 
            void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glLightxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLightxvOES")]
            public static 
            unsafe void Lightx(OpenTK.Graphics.OpenGL.OesFixedPoint light, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)light, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLineWidthxOES")]
            public static 
            void LineWidthx(int width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLineWidthxOES((int)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadMatrixxOES")]
            public static 
            void LoadMatrixx(int[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = m)
                    {
                        Delegates.glLoadMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadMatrixxOES")]
            public static 
            void LoadMatrixx(ref int m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = &m)
                    {
                        Delegates.glLoadMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadMatrixxOES")]
            public static 
            unsafe void LoadMatrixx(int* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadMatrixxOES((int*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadTransposeMatrixxOES")]
            public static 
            void LoadTransposeMatrixx(int[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = m)
                    {
                        Delegates.glLoadTransposeMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadTransposeMatrixxOES")]
            public static 
            void LoadTransposeMatrixx(ref int m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = &m)
                    {
                        Delegates.glLoadTransposeMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glLoadTransposeMatrixxOES")]
            public static 
            unsafe void LoadTransposeMatrixx(int* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLoadTransposeMatrixxOES((int*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMap1xOES")]
            public static 
            void Map1x(OpenTK.Graphics.OpenGL.OesFixedPoint target, int u1, int u2, Int32 stride, Int32 order, int points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMap1xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (int)u1, (int)u2, (Int32)stride, (Int32)order, (int)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMap2xOES")]
            public static 
            void Map2x(OpenTK.Graphics.OpenGL.OesFixedPoint target, int u1, int u2, Int32 ustride, Int32 uorder, int v1, int v2, Int32 vstride, Int32 vorder, int points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMap2xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (int)u1, (int)u2, (Int32)ustride, (Int32)uorder, (int)v1, (int)v2, (Int32)vstride, (Int32)vorder, (int)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMapGrid1xOES")]
            public static 
            void MapGrid1x(Int32 n, int u1, int u2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapGrid1xOES((Int32)n, (int)u1, (int)u2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMapGrid2xOES")]
            public static 
            void MapGrid2x(Int32 n, int u1, int u2, int v1, int v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMapGrid2xOES((Int32)n, (int)u1, (int)u2, (int)v1, (int)v2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMaterialxOES")]
            public static 
            void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMaterialxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)face, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMaterialxvOES")]
            public static 
            void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* param_ptr = param)
                    {
                        Delegates.glMaterialxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)face, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMaterialxvOES")]
            public static 
            unsafe void Materialx(OpenTK.Graphics.OpenGL.OesFixedPoint face, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMaterialxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)face, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord1bOES")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord1bOES")]
            public static 
            void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord1bvOES")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord1bvOES")]
            public static 
            unsafe void MultiTexCoord1(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord1xOES")]
            public static 
            void MultiTexCoord1x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int)s);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord1xvOES")]
            public static 
            unsafe void MultiTexCoord1x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord1xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte s, Byte t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte s, SByte t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord2bvOES")]
            public static 
            unsafe void MultiTexCoord2(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord2xOES")]
            public static 
            void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int s, int t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int)s, (int)t);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord2xvOES")]
            public static 
            void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord2xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord2xvOES")]
            public static 
            void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord2xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord2xvOES")]
            public static 
            unsafe void MultiTexCoord2x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord2xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte s, Byte t, Byte r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t, (SByte)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte s, SByte t, SByte r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t, (SByte)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord3bvOES")]
            public static 
            unsafe void MultiTexCoord3(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord3xOES")]
            public static 
            void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int s, int t, int r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int)s, (int)t, (int)r);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord3xvOES")]
            public static 
            void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord3xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord3xvOES")]
            public static 
            void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord3xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord3xvOES")]
            public static 
            unsafe void MultiTexCoord3x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord3xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte s, Byte t, Byte r, Byte q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t, (SByte)r, (SByte)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte s, SByte t, SByte r, SByte q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4bOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte)s, (SByte)t, (SByte)r, (SByte)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glMultiTexCoord4bvOES")]
            public static 
            unsafe void MultiTexCoord4(OpenTK.Graphics.OpenGL.OesByteCoordinates texture, SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4bvOES((OpenTK.Graphics.OpenGL.OesByteCoordinates)texture, (SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord4xOES")]
            public static 
            void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int s, int t, int r, int q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4xOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int)s, (int)t, (int)r, (int)q);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord4xvOES")]
            public static 
            void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glMultiTexCoord4xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord4xvOES")]
            public static 
            void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glMultiTexCoord4xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultiTexCoord4xvOES")]
            public static 
            unsafe void MultiTexCoord4x(OpenTK.Graphics.OpenGL.OesFixedPoint texture, int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultiTexCoord4xvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)texture, (int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultMatrixxOES")]
            public static 
            void MultMatrixx(int[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = m)
                    {
                        Delegates.glMultMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultMatrixxOES")]
            public static 
            void MultMatrixx(ref int m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = &m)
                    {
                        Delegates.glMultMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultMatrixxOES")]
            public static 
            unsafe void MultMatrixx(int* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultMatrixxOES((int*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultTransposeMatrixxOES")]
            public static 
            void MultTransposeMatrixx(int[] m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = m)
                    {
                        Delegates.glMultTransposeMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultTransposeMatrixxOES")]
            public static 
            void MultTransposeMatrixx(ref int m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* m_ptr = &m)
                    {
                        Delegates.glMultTransposeMatrixxOES((int*)m_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glMultTransposeMatrixxOES")]
            public static 
            unsafe void MultTransposeMatrixx(int* m)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glMultTransposeMatrixxOES((int*)m);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glNormal3xOES")]
            public static 
            void Normal3x(int nx, int ny, int nz)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3xOES((int)nx, (int)ny, (int)nz);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glNormal3xvOES")]
            public static 
            void Normal3x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glNormal3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glNormal3xvOES")]
            public static 
            void Normal3x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glNormal3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glNormal3xvOES")]
            public static 
            unsafe void Normal3x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glNormal3xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_single_precision]
        /// 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 = "OES_single_precision", Version = "4.3", EntryPoint = "glOrthofOES")]
            public static 
            void Ortho(Single l, Single r, Single b, Single t, Single n, Single f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glOrthofOES((Single)l, (Single)r, (Single)b, (Single)t, (Single)n, (Single)f);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glOrthoxOES")]
            public static 
            void Orthox(int l, int r, int b, int t, int n, int f)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glOrthoxOES((int)l, (int)r, (int)b, (int)t, (int)n, (int)f);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPassThroughxOES")]
            public static 
            void PassThroughx(int token)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPassThroughxOES((int)token);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelTransferxOES")]
            public static 
            void PixelTransferx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTransferxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPixelZoomxOES")]
            public static 
            void PixelZoomx(int xfactor, int yfactor)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelZoomxOES((int)xfactor, (int)yfactor);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPointParameterxvOES")]
            public static 
            void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glPointParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPointParameterxvOES")]
            public static 
            void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, ref int @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = &@params)
                    {
                        Delegates.glPointParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPointParameterxvOES")]
            public static 
            unsafe void PointParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPointSizexOES")]
            public static 
            void PointSizex(int size)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointSizexOES((int)size);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPolygonOffsetxOES")]
            public static 
            void PolygonOffsetx(int factor, int units)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPolygonOffsetxOES((int)factor, (int)units);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            void PrioritizeTexturesx(Int32 n, Int32[] textures, int[] priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = textures)
                    fixed (int* priorities_ptr = priorities)
                    {
                        Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures_ptr, (int*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            void PrioritizeTexturesx(Int32 n, ref Int32 textures, ref int priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* textures_ptr = &textures)
                    fixed (int* priorities_ptr = &priorities)
                    {
                        Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures_ptr, (int*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            unsafe void PrioritizeTexturesx(Int32 n, Int32* textures, int* priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures, (int*)priorities);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            void PrioritizeTexturesx(Int32 n, UInt32[] textures, int[] priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = textures)
                    fixed (int* priorities_ptr = priorities)
                    {
                        Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures_ptr, (int*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            void PrioritizeTexturesx(Int32 n, ref UInt32 textures, ref int priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (UInt32* textures_ptr = &textures)
                    fixed (int* priorities_ptr = &priorities)
                    {
                        Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures_ptr, (int*)priorities_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glPrioritizeTexturesxOES")]
            public static 
            unsafe void PrioritizeTexturesx(Int32 n, UInt32* textures, int* priorities)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPrioritizeTexturesxOES((Int32)n, (UInt32*)textures, (int*)priorities);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_query_matrix]</summary>
            [AutoGenerated(Category = "OES_query_matrix", Version = "4.3", EntryPoint = "glQueryMatrixxOES")]
            public static 
            Int32 QueryMatrixx([OutAttribute] int[] mantissa, [OutAttribute] Int32[] exponent)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* mantissa_ptr = mantissa)
                    fixed (Int32* exponent_ptr = exponent)
                    {
                        return Delegates.glQueryMatrixxOES((int*)mantissa_ptr, (Int32*)exponent_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_query_matrix]</summary>
            [AutoGenerated(Category = "OES_query_matrix", Version = "4.3", EntryPoint = "glQueryMatrixxOES")]
            public static 
            Int32 QueryMatrixx([OutAttribute] out int mantissa, [OutAttribute] out Int32 exponent)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* mantissa_ptr = &mantissa)
                    fixed (Int32* exponent_ptr = &exponent)
                    {
                        Int32 retval = Delegates.glQueryMatrixxOES((int*)mantissa_ptr, (Int32*)exponent_ptr);
                        mantissa = *mantissa_ptr;
                        exponent = *exponent_ptr;
                        return retval;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_query_matrix]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_query_matrix", Version = "4.3", EntryPoint = "glQueryMatrixxOES")]
            public static 
            unsafe Int32 QueryMatrixx([OutAttribute] int* mantissa, [OutAttribute] Int32* exponent)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glQueryMatrixxOES((int*)mantissa, (Int32*)exponent);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos2xOES")]
            public static 
            void RasterPos2x(int x, int y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos2xOES((int)x, (int)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos2xvOES")]
            public static 
            void RasterPos2x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glRasterPos2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos2xvOES")]
            public static 
            void RasterPos2x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glRasterPos2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos2xvOES")]
            public static 
            unsafe void RasterPos2x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos2xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos3xOES")]
            public static 
            void RasterPos3x(int x, int y, int z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos3xOES((int)x, (int)y, (int)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos3xvOES")]
            public static 
            void RasterPos3x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glRasterPos3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos3xvOES")]
            public static 
            void RasterPos3x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glRasterPos3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos3xvOES")]
            public static 
            unsafe void RasterPos3x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos3xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos4xOES")]
            public static 
            void RasterPos4x(int x, int y, int z, int w)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos4xOES((int)x, (int)y, (int)z, (int)w);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos4xvOES")]
            public static 
            void RasterPos4x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glRasterPos4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos4xvOES")]
            public static 
            void RasterPos4x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glRasterPos4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRasterPos4xvOES")]
            public static 
            unsafe void RasterPos4x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRasterPos4xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRectxOES")]
            public static 
            void Rectx(int x1, int y1, int x2, int y2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRectxOES((int)x1, (int)y1, (int)x2, (int)y2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRectxvOES")]
            public static 
            void Rectx(int[] v1, int[] v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* v1_ptr = v1)
                    fixed (int* v2_ptr = v2)
                    {
                        Delegates.glRectxvOES((int*)v1_ptr, (int*)v2_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRectxvOES")]
            public static 
            void Rectx(ref int v1, ref int v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* v1_ptr = &v1)
                    fixed (int* v2_ptr = &v2)
                    {
                        Delegates.glRectxvOES((int*)v1_ptr, (int*)v2_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRectxvOES")]
            public static 
            unsafe void Rectx(int* v1, int* v2)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRectxvOES((int*)v1, (int*)v2);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glRotatexOES")]
            public static 
            void Rotatex(int angle, int x, int y, int z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glRotatexOES((int)angle, (int)x, (int)y, (int)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_fixed_point]
        /// 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 = "OES_fixed_point", Version = "4.3", EntryPoint = "glSampleCoverageOES")]
            public static 
            void SampleCoverage(int value, bool invert)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSampleCoverageOES((int)value, (bool)invert);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glScalexOES")]
            public static 
            void Scalex(int x, int y, int z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glScalexOES((int)x, (int)y, (int)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord1bOES")]
            public static 
            void TexCoord1(Byte s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1bOES((SByte)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord1bOES")]
            public static 
            void TexCoord1(SByte s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1bOES((SByte)s);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord1bvOES")]
            public static 
            unsafe void TexCoord1(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord1bvOES")]
            public static 
            unsafe void TexCoord1(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord1xOES")]
            public static 
            void TexCoord1x(int s)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1xOES((int)s);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord1xvOES")]
            public static 
            unsafe void TexCoord1x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord1xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bOES")]
            public static 
            void TexCoord2(Byte s, Byte t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2bOES((SByte)s, (SByte)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bOES")]
            public static 
            void TexCoord2(SByte s, SByte t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2bOES((SByte)s, (SByte)t);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            void TexCoord2(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            void TexCoord2(ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            unsafe void TexCoord2(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            void TexCoord2(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            void TexCoord2(ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord2bvOES")]
            public static 
            unsafe void TexCoord2(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord2xOES")]
            public static 
            void TexCoord2x(int s, int t)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2xOES((int)s, (int)t);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord2xvOES")]
            public static 
            void TexCoord2x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glTexCoord2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord2xvOES")]
            public static 
            void TexCoord2x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord2xvOES")]
            public static 
            unsafe void TexCoord2x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord2xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bOES")]
            public static 
            void TexCoord3(Byte s, Byte t, Byte r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3bOES((SByte)s, (SByte)t, (SByte)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bOES")]
            public static 
            void TexCoord3(SByte s, SByte t, SByte r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3bOES((SByte)s, (SByte)t, (SByte)r);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            void TexCoord3(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            void TexCoord3(ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            unsafe void TexCoord3(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            void TexCoord3(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            void TexCoord3(ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord3bvOES")]
            public static 
            unsafe void TexCoord3(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord3xOES")]
            public static 
            void TexCoord3x(int s, int t, int r)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3xOES((int)s, (int)t, (int)r);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord3xvOES")]
            public static 
            void TexCoord3x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glTexCoord3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord3xvOES")]
            public static 
            void TexCoord3x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord3xvOES")]
            public static 
            unsafe void TexCoord3x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord3xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bOES")]
            public static 
            void TexCoord4(Byte s, Byte t, Byte r, Byte q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4bOES((SByte)s, (SByte)t, (SByte)r, (SByte)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bOES")]
            public static 
            void TexCoord4(SByte s, SByte t, SByte r, SByte q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4bOES((SByte)s, (SByte)t, (SByte)r, (SByte)q);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            void TexCoord4(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            void TexCoord4(ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            unsafe void TexCoord4(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            void TexCoord4(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glTexCoord4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            void TexCoord4(ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glTexCoord4bvOES")]
            public static 
            unsafe void TexCoord4(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord4xOES")]
            public static 
            void TexCoord4x(int s, int t, int r, int q)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4xOES((int)s, (int)t, (int)r, (int)q);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord4xvOES")]
            public static 
            void TexCoord4x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glTexCoord4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord4xvOES")]
            public static 
            void TexCoord4x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glTexCoord4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexCoord4xvOES")]
            public static 
            unsafe void TexCoord4x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexCoord4xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexEnvxOES")]
            public static 
            void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexEnvxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexEnvxvOES")]
            public static 
            void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glTexEnvxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexEnvxvOES")]
            public static 
            unsafe void TexEnvx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexEnvxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexGenxOES")]
            public static 
            void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexGenxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexGenxvOES")]
            public static 
            void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glTexGenxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexGenxvOES")]
            public static 
            unsafe void TexGenx(OpenTK.Graphics.OpenGL.OesFixedPoint coord, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexGenxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)coord, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexParameterxOES")]
            public static 
            void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterxOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexParameterxvOES")]
            public static 
            void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* @params_ptr = @params)
                    {
                        Delegates.glTexParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTexParameterxvOES")]
            public static 
            unsafe void TexParameterx(OpenTK.Graphics.OpenGL.OesFixedPoint target, OpenTK.Graphics.OpenGL.OesFixedPoint pname, int* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexParameterxvOES((OpenTK.Graphics.OpenGL.OesFixedPoint)target, (OpenTK.Graphics.OpenGL.OesFixedPoint)pname, (int*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glTranslatexOES")]
            public static 
            void Translatex(int x, int y, int z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTranslatexOES((int)x, (int)y, (int)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bOES")]
            public static 
            void Vertex2(Byte x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2bOES((SByte)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bOES")]
            public static 
            void Vertex2(SByte x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2bOES((SByte)x);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bvOES")]
            public static 
            void Vertex2(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glVertex2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bvOES")]
            public static 
            unsafe void Vertex2(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bvOES")]
            public static 
            void Vertex2(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glVertex2bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex2bvOES")]
            public static 
            unsafe void Vertex2(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex2xOES")]
            public static 
            void Vertex2x(int x)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2xOES((int)x);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex2xvOES")]
            public static 
            void Vertex2x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glVertex2xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex2xvOES")]
            public static 
            unsafe void Vertex2x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex2xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bOES")]
            public static 
            void Vertex3(Byte x, Byte y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3bOES((SByte)x, (SByte)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bOES")]
            public static 
            void Vertex3(SByte x, SByte y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3bOES((SByte)x, (SByte)y);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            void Vertex3(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glVertex3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            void Vertex3(ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glVertex3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            unsafe void Vertex3(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            void Vertex3(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glVertex3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            void Vertex3(ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glVertex3bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex3bvOES")]
            public static 
            unsafe void Vertex3(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex3xOES")]
            public static 
            void Vertex3x(int x, int y)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3xOES((int)x, (int)y);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex3xvOES")]
            public static 
            void Vertex3x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glVertex3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex3xvOES")]
            public static 
            void Vertex3x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glVertex3xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex3xvOES")]
            public static 
            unsafe void Vertex3x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex3xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bOES")]
            public static 
            void Vertex4(Byte x, Byte y, Byte z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4bOES((SByte)x, (SByte)y, (SByte)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bOES")]
            public static 
            void Vertex4(SByte x, SByte y, SByte z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4bOES((SByte)x, (SByte)y, (SByte)z);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            void Vertex4(Byte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = coords)
                    {
                        Delegates.glVertex4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            void Vertex4(ref Byte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Byte* coords_ptr = &coords)
                    {
                        Delegates.glVertex4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            unsafe void Vertex4(Byte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            void Vertex4(SByte[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = coords)
                    {
                        Delegates.glVertex4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            void Vertex4(ref SByte coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (SByte* coords_ptr = &coords)
                    {
                        Delegates.glVertex4bvOES((SByte*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: OES_byte_coordinates]
        /// 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 = "OES_byte_coordinates", Version = "4.3", EntryPoint = "glVertex4bvOES")]
            public static 
            unsafe void Vertex4(SByte* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4bvOES((SByte*)coords);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex4xOES")]
            public static 
            void Vertex4x(int x, int y, int z)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4xOES((int)x, (int)y, (int)z);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex4xvOES")]
            public static 
            void Vertex4x(int[] coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = coords)
                    {
                        Delegates.glVertex4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex4xvOES")]
            public static 
            void Vertex4x(ref int coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (int* coords_ptr = &coords)
                    {
                        Delegates.glVertex4xvOES((int*)coords_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: OES_fixed_point]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "OES_fixed_point", Version = "4.3", EntryPoint = "glVertex4xvOES")]
            public static 
            unsafe void Vertex4x(int* coords)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glVertex4xvOES((int*)coords);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Pgi
        {
            
        /// <summary>[requires: PGI_misc_hints]
        /// Specify implementation-specific hints
        /// </summary>
        /// <param name="target">
        /// <para>
        /// Specifies a symbolic constant indicating the behavior to be controlled. GL_LINE_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 = "PGI_misc_hints", Version = "1.1", EntryPoint = "glHintPGI")]
            public static 
            void Hint(OpenTK.Graphics.OpenGL.PgiMiscHints target, Int32 mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glHintPGI((OpenTK.Graphics.OpenGL.PgiMiscHints)target, (Int32)mode);
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sgi
        {
            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, ref Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterfvSGI")]
            public static 
            unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, ref Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableParameterivSGI")]
            public static 
            unsafe void ColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T5[,,] table)
                where T5 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glColorTableSGI")]
            public static 
            void ColorTable<T5>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                    table = (T5)table_ptr.Target;
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glCopyColorTableSGI")]
            public static 
            void CopyColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 x, Int32 y, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glCopyColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)x, (Int32)y, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterfvSGI")]
            public static 
            unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterfvSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableParameterivSGI")]
            public static 
            unsafe void GetColorTableParameter(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.SgiColorTable pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableParameterivSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.SgiColorTable)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [OutAttribute] IntPtr table)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T3[,,] table)
                where T3 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle table_ptr = GCHandle.Alloc(table, GCHandleType.Pinned);
                try
                {
                    Delegates.glGetColorTableSGI((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGI_color_table]
        /// 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 = "SGI_color_table", Version = "1.0", EntryPoint = "glGetColorTableSGI")]
            public static 
            void GetColorTable<T3>(OpenTK.Graphics.OpenGL.SgiColorTable target, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SgiColorTable)target, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)table_ptr.AddrOfPinnedObject());
                    table = (T3)table_ptr.Target;
                }
                finally
                {
                    table_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

        }

        public static partial class Sgis
        {
            /// <summary>[requires: SGIS_detail_texture]</summary>
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_detail_texture]</summary>
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_detail_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glDetailTexFuncSGIS")]
            public static 
            unsafe void DetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [AutoGenerated(Category = "SGIS_fog_function", 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
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [AutoGenerated(Category = "SGIS_fog_function", 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
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_fog_function", 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
            }

            /// <summary>[requires: SGIS_detail_texture]</summary>
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_detail_texture]</summary>
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] out Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glGetDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points_ptr);
                        points = *points_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_detail_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_detail_texture", Version = "1.0", EntryPoint = "glGetDetailTexFuncSGIS")]
            public static 
            unsafe void GetDetailTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetDetailTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [AutoGenerated(Category = "SGIS_fog_function", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            void GetFogFunc([OutAttribute] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetFogFuncSGIS((Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [AutoGenerated(Category = "SGIS_fog_function", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            void GetFogFunc([OutAttribute] 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
            }

            /// <summary>[requires: SGIS_fog_function]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_fog_function", Version = "1.1", EntryPoint = "glGetFogFuncSGIS")]
            public static 
            unsafe void GetFogFunc([OutAttribute] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFogFuncSGIS((Single*)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTexGenParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTexGenParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterfvSGIS")]
            public static 
            unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTexGenParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetPixelTexGenParameterivSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetPixelTexGenParameterivSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glGetPixelTexGenParameterivSGIS")]
            public static 
            unsafe void GetPixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetPixelTexGenParameterivSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glGetSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] out Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glGetSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points_ptr);
                        points = *points_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glGetSharpenTexFuncSGIS")]
            public static 
            unsafe void GetSharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, [OutAttribute] Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glGetTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] out Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glGetTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Single*)weights_ptr);
                        weights = *weights_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glGetTexFilterFuncSGIS")]
            public static 
            unsafe void GetTexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, [OutAttribute] Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfSGIS")]
            public static 
            void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterfSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfvSGIS")]
            public static 
            void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPixelTexGenParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameterfvSGIS")]
            public static 
            unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameteriSGIS")]
            public static 
            void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameteriSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameterivSGIS")]
            public static 
            void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glPixelTexGenParameterivSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_pixel_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenParameterivSGIS")]
            public static 
            unsafe void PixelTexGenParameter(OpenTK.Graphics.OpenGL.SgisPixelTexture pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenParameterivSGIS((OpenTK.Graphics.OpenGL.SgisPixelTexture)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGIS_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "SGIS_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfSGIS")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfSGIS((OpenTK.Graphics.OpenGL.SgisPointParameters)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGIS_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "SGIS_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvSGIS")]
            public static 
            void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glPointParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPointParameters)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            
        /// <summary>[requires: SGIS_point_parameters]
        /// Specify point parameters
        /// </summary>
        /// <param name="pname">
        /// <para>
        /// Specifies a single-valued point parameter. 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 = "SGIS_point_parameters", Version = "1.0", EntryPoint = "glPointParameterfvSGIS")]
            public static 
            unsafe void PointParameter(OpenTK.Graphics.OpenGL.SgisPointParameters pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPointParameterfvSGIS((OpenTK.Graphics.OpenGL.SgisPointParameters)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_multisample]</summary>
            [AutoGenerated(Category = "SGIS_multisample", 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
            }

            /// <summary>[requires: SGIS_multisample]</summary>
            [AutoGenerated(Category = "SGIS_multisample", Version = "1.0", EntryPoint = "glSamplePatternSGIS")]
            public static 
            void SamplePattern(OpenTK.Graphics.OpenGL.SgisMultisample pattern)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSamplePatternSGIS((OpenTK.Graphics.OpenGL.SgisMultisample)pattern);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single[] points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = points)
                    {
                        Delegates.glSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, ref Single points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* points_ptr = &points)
                    {
                        Delegates.glSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_sharpen_texture]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_sharpen_texture", Version = "1.0", EntryPoint = "glSharpenTexFuncSGIS")]
            public static 
            unsafe void SharpenTexFunc(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 n, Single* points)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSharpenTexFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)n, (Single*)points);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, Single[] weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = weights)
                    {
                        Delegates.glTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Int32)n, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, ref Single weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* weights_ptr = &weights)
                    {
                        Delegates.glTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Int32)n, (Single*)weights_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_filter4]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIS_texture_filter4", Version = "1.0", EntryPoint = "glTexFilterFuncSGIS")]
            public static 
            unsafe void TexFilterFunc(OpenTK.Graphics.OpenGL.TextureTarget target, OpenTK.Graphics.OpenGL.SgisTextureFilter4 filter, Int32 n, Single* weights)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexFilterFuncSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (OpenTK.Graphics.OpenGL.SgisTextureFilter4)filter, (Int32)n, (Single*)weights);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T10[,,] pixels)
                where T10 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexImage4DSGIS")]
            public static 
            void TexImage4D<T10>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, OpenTK.Graphics.OpenGL.PixelInternalFormat internalformat, Int32 width, Int32 height, Int32 depth, Int32 size4d, Int32 border, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (OpenTK.Graphics.OpenGL.PixelInternalFormat)internalformat, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (Int32)border, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T10)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, IntPtr pixels)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glTexSubImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[,] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] T12[,,] pixels)
                where T12 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pixels_ptr = GCHandle.Alloc(pixels, GCHandleType.Pinned);
                try
                {
                    Delegates.glTexSubImage4DSGIS((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture4D]</summary>
            [AutoGenerated(Category = "SGIS_texture4D", Version = "1.0", EntryPoint = "glTexSubImage4DSGIS")]
            public static 
            void TexSubImage4D<T12>(OpenTK.Graphics.OpenGL.TextureTarget target, Int32 level, Int32 xoffset, Int32 yoffset, Int32 zoffset, Int32 woffset, Int32 width, Int32 height, Int32 depth, Int32 size4d, OpenTK.Graphics.OpenGL.PixelFormat format, OpenTK.Graphics.OpenGL.PixelType type, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.TextureTarget)target, (Int32)level, (Int32)xoffset, (Int32)yoffset, (Int32)zoffset, (Int32)woffset, (Int32)width, (Int32)height, (Int32)depth, (Int32)size4d, (OpenTK.Graphics.OpenGL.PixelFormat)format, (OpenTK.Graphics.OpenGL.PixelType)type, (IntPtr)pixels_ptr.AddrOfPinnedObject());
                    pixels = (T12)pixels_ptr.Target;
                }
                finally
                {
                    pixels_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIS_texture_color_mask]</summary>
            [AutoGenerated(Category = "SGIS_texture_color_mask", 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
        {
            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3dSGIX")]
            public static 
            unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_polynomial_ffd", Version = "1.0", EntryPoint = "glDeformationMap3fSGIX")]
            public static 
            unsafe void DeformationMap3(OpenTK.Graphics.OpenGL.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((OpenTK.Graphics.OpenGL.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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", 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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_polynomial_ffd", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            Int32 FinishAsync([OutAttribute] 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            unsafe Int32 FinishAsync([OutAttribute] Int32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glFinishAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            Int32 FinishAsync([OutAttribute] 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glFinishAsyncSGIX")]
            public static 
            unsafe Int32 FinishAsync([OutAttribute] UInt32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glFinishAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_flush_raster]</summary>
            [AutoGenerated(Category = "SGIX_flush_raster", Version = "1.0", EntryPoint = "glFlushRasterSGIX")]
            public static 
            void FlushRaster()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFlushRasterSGIX();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentColorMaterialSGIX")]
            public static 
            void FragmentColorMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentColorMaterialSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightfSGIX")]
            public static 
            void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightfSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightfvSGIX")]
            public static 
            void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightfvSGIX")]
            public static 
            unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightiSGIX")]
            public static 
            void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightiSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightivSGIX")]
            public static 
            void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightivSGIX")]
            public static 
            unsafe void FragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModelfSGIX")]
            public static 
            void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelfSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModelfvSGIX")]
            public static 
            void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightModelfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModelfvSGIX")]
            public static 
            unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModeliSGIX")]
            public static 
            void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModeliSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModelivSGIX")]
            public static 
            void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentLightModelivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentLightModelivSGIX")]
            public static 
            unsafe void FragmentLightModel(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentLightModelivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialfSGIX")]
            public static 
            void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialfSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialfvSGIX")]
            public static 
            void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glFragmentMaterialfvSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialfvSGIX")]
            public static 
            unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialfvSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialiSGIX")]
            public static 
            void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialiSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialivSGIX")]
            public static 
            void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glFragmentMaterialivSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glFragmentMaterialivSGIX")]
            public static 
            unsafe void FragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFragmentMaterialivSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_framezoom]</summary>
            [AutoGenerated(Category = "SGIX_framezoom", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentLightfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentLightfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightfvSGIX")]
            public static 
            unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentLightfvSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentLightivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentLightivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentLightivSGIX")]
            public static 
            unsafe void GetFragmentLight(OpenTK.Graphics.OpenGL.SgixFragmentLighting light, OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentLightivSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)light, (OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentMaterialfvSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentMaterialfvSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialfvSGIX")]
            public static 
            unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentMaterialfvSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetFragmentMaterialivSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetFragmentMaterialivSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glGetFragmentMaterialivSGIX")]
            public static 
            unsafe void GetFragmentMaterial(OpenTK.Graphics.OpenGL.MaterialFace face, OpenTK.Graphics.OpenGL.MaterialParameter pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetFragmentMaterialivSGIX((OpenTK.Graphics.OpenGL.MaterialFace)face, (OpenTK.Graphics.OpenGL.MaterialParameter)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glGetInstrumentsSGIX")]
            public static 
            Int32 GetInstruments()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glGetInstrumentsSGIX();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Single @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterfvSGIX")]
            public static 
            unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            unsafe void GetListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] out Int32 @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = &@params)
                    {
                        Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                        @params = *@params_ptr;
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glGetListParameterivSGIX")]
            public static 
            unsafe void GetListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, [OutAttribute] Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glGetListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_igloo_interface]</summary>
            [AutoGenerated(Category = "SGIX_igloo_interface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface(OpenTK.Graphics.OpenGL.All pname, IntPtr @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glIglooInterfaceSGIX((OpenTK.Graphics.OpenGL.All)pname, (IntPtr)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_igloo_interface]</summary>
            [AutoGenerated(Category = "SGIX_igloo_interface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((OpenTK.Graphics.OpenGL.All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_igloo_interface]</summary>
            [AutoGenerated(Category = "SGIX_igloo_interface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((OpenTK.Graphics.OpenGL.All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_igloo_interface]</summary>
            [AutoGenerated(Category = "SGIX_igloo_interface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] T1[,,] @params)
                where T1 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle @params_ptr = GCHandle.Alloc(@params, GCHandleType.Pinned);
                try
                {
                    Delegates.glIglooInterfaceSGIX((OpenTK.Graphics.OpenGL.All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_igloo_interface]</summary>
            [AutoGenerated(Category = "SGIX_igloo_interface", Version = "1.0", EntryPoint = "glIglooInterfaceSGIX")]
            public static 
            void IglooInterface<T1>(OpenTK.Graphics.OpenGL.All pname, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.All)pname, (IntPtr)@params_ptr.AddrOfPinnedObject());
                    @params = (T1)@params_ptr.Target;
                }
                finally
                {
                    @params_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            void InstrumentsBuffer(Int32 size, [OutAttribute] 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
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            void InstrumentsBuffer(Int32 size, [OutAttribute] 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
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glInstrumentsBufferSGIX")]
            public static 
            unsafe void InstrumentsBuffer(Int32 size, [OutAttribute] Int32* buffer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glInstrumentsBufferSGIX((Int32)size, (Int32*)buffer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", 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
            }

            /// <summary>[requires: SGIX_fragment_lighting]</summary>
            [AutoGenerated(Category = "SGIX_fragment_lighting", Version = "1.0", EntryPoint = "glLightEnviSGIX")]
            public static 
            void LightEnv(OpenTK.Graphics.OpenGL.SgixFragmentLighting pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glLightEnviSGIX((OpenTK.Graphics.OpenGL.SgixFragmentLighting)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfSGIX")]
            public static 
            void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfSGIX")]
            public static 
            void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterfvSGIX")]
            public static 
            unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterfvSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameteriSGIX")]
            public static 
            void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameteriSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameteriSGIX")]
            public static 
            void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameteriSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            unsafe void ListParameter(Int32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_list_priority]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_list_priority", Version = "1.0", EntryPoint = "glListParameterivSGIX")]
            public static 
            unsafe void ListParameter(UInt32 list, OpenTK.Graphics.OpenGL.ListParameterName pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glListParameterivSGIX((UInt32)list, (OpenTK.Graphics.OpenGL.ListParameterName)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [AutoGenerated(Category = "SGIX_polynomial_ffd", 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
            }

            /// <summary>[requires: SGIX_polynomial_ffd]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_polynomial_ffd", 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
            }

            /// <summary>[requires: SGIX_pixel_texture]</summary>
            [AutoGenerated(Category = "SGIX_pixel_texture", Version = "1.0", EntryPoint = "glPixelTexGenSGIX")]
            public static 
            void PixelTexGen(OpenTK.Graphics.OpenGL.SgixPixelTexture mode)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glPixelTexGenSGIX((OpenTK.Graphics.OpenGL.SgixPixelTexture)mode);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_async]</summary>
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            Int32 PollAsync([OutAttribute] 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            unsafe Int32 PollAsync([OutAttribute] Int32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            Int32 PollAsync([OutAttribute] 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
            }

            /// <summary>[requires: SGIX_async]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_async", Version = "1.0", EntryPoint = "glPollAsyncSGIX")]
            public static 
            unsafe Int32 PollAsync([OutAttribute] UInt32* markerp)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollAsyncSGIX((UInt32*)markerp);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glPollInstrumentsSGIX")]
            public static 
            Int32 PollInstruments([OutAttribute] 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
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glPollInstrumentsSGIX")]
            public static 
            unsafe Int32 PollInstruments([OutAttribute] Int32* marker_p)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                return Delegates.glPollInstrumentsSGIX((Int32*)marker_p);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", 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
            }

            /// <summary>[requires: SGIX_reference_plane]</summary>
            [AutoGenerated(Category = "SGIX_reference_plane", 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
            }

            /// <summary>[requires: SGIX_reference_plane]</summary>
            [AutoGenerated(Category = "SGIX_reference_plane", 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
            }

            /// <summary>[requires: SGIX_reference_plane]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_reference_plane", 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
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameterfSGIX")]
            public static 
            void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Single param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterfSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Single)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameterfvSGIX")]
            public static 
            void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Single[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Single* @params_ptr = @params)
                    {
                        Delegates.glSpriteParameterfvSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Single*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameterfvSGIX")]
            public static 
            unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Single* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterfvSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Single*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameteriSGIX")]
            public static 
            void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Int32 param)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameteriSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Int32)param);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameterivSGIX")]
            public static 
            void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Int32[] @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                unsafe
                {
                    fixed (Int32* @params_ptr = @params)
                    {
                        Delegates.glSpriteParameterivSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Int32*)@params_ptr);
                    }
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_sprite]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SGIX_sprite", Version = "1.0", EntryPoint = "glSpriteParameterivSGIX")]
            public static 
            unsafe void SpriteParameter(OpenTK.Graphics.OpenGL.SgixSprite pname, Int32* @params)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glSpriteParameterivSGIX((OpenTK.Graphics.OpenGL.SgixSprite)pname, (Int32*)@params);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", Version = "1.0", EntryPoint = "glStartInstrumentsSGIX")]
            public static 
            void StartInstruments()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glStartInstrumentsSGIX();
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SGIX_instruments]</summary>
            [AutoGenerated(Category = "SGIX_instruments", 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
            }

            /// <summary>[requires: SGIX_tag_sample_buffer]</summary>
            [AutoGenerated(Category = "SGIX_tag_sample_buffer", 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
        {
            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_mesh_array]</summary>
            [AutoGenerated(Category = "SUN_mesh_array", Version = "1.1", EntryPoint = "glDrawMeshArraysSUN")]
            public static 
            void DrawMeshArrays(OpenTK.Graphics.OpenGL.PrimitiveType mode, Int32 first, Int32 count, Int32 width)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glDrawMeshArraysSUN((OpenTK.Graphics.OpenGL.PrimitiveType)mode, (Int32)first, (Int32)count, (Int32)width);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_global_alpha]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_global_alpha", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, IntPtr pointer)
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glReplacementCodePointerSUN((OpenTK.Graphics.OpenGL.SunTriangleList)type, (Int32)stride, (IntPtr)pointer);
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((OpenTK.Graphics.OpenGL.SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((OpenTK.Graphics.OpenGL.SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] T2[,,] pointer)
                where T2 : struct
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                GCHandle pointer_ptr = GCHandle.Alloc(pointer, GCHandleType.Pinned);
                try
                {
                    Delegates.glReplacementCodePointerSUN((OpenTK.Graphics.OpenGL.SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", Version = "1.1", EntryPoint = "glReplacementCodePointerSUN")]
            public static 
            void ReplacementCodePointer<T2>(OpenTK.Graphics.OpenGL.SunTriangleList type, Int32 stride, [InAttribute, OutAttribute] 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((OpenTK.Graphics.OpenGL.SunTriangleList)type, (Int32)stride, (IntPtr)pointer_ptr.AddrOfPinnedObject());
                    pointer = (T2)pointer_ptr.Target;
                }
                finally
                {
                    pointer_ptr.Free();
                }
                #if DEBUG
                }
                #endif
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(ref Int32 rc, Single[] c, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor3fVertex3(ref UInt32 rc, Single[] c, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(ref Int32 rc, Single[] c, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4fNormal3fVertex3(ref UInt32 rc, Single[] c, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(ref Int32 rc, Byte[] c, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiColor4ubVertex3fvSUN")]
            public static 
            void ReplacementCodeuiColor4ubVertex3(ref UInt32 rc, Byte[] c, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(ref Int32 rc, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiNormal3fVertex3(ref UInt32 rc, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref Int32 rc, Single[] tc, Single[] c, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3(ref UInt32 rc, Single[] tc, Single[] c, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref Int32 rc, Single[] tc, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fNormal3fVertex3(ref UInt32 rc, Single[] tc, Single[] n, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(ref Int32 rc, Single[] tc, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiTexCoord2fVertex3fvSUN")]
            public static 
            void ReplacementCodeuiTexCoord2fVertex3(ref UInt32 rc, Single[] tc, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            void ReplacementCodeuiVertex3(ref Int32 rc, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", Version = "1.1", EntryPoint = "glReplacementCodeuiVertex3fvSUN")]
            public static 
            void ReplacementCodeuiVertex3(ref UInt32 rc, 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_triangle_list]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_triangle_list", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [AutoGenerated(Category = "SUN_vertex", 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
            }

            /// <summary>[requires: SUN_vertex]</summary>
            [System.CLSCompliant(false)]
            [AutoGenerated(Category = "SUN_vertex", 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
            }

        }

        public static partial class Sunx
        {
            /// <summary>[requires: SUNX_constant_data]</summary>
            [AutoGenerated(Category = "SUNX_constant_data", Version = "1.1", EntryPoint = "glFinishTextureSUNX")]
            public static 
            void FinishTexture()
            {
                #if DEBUG
                using (new ErrorHelper(GraphicsContext.CurrentContext))
                {
                #endif
                Delegates.glFinishTextureSUNX();
                #if DEBUG
                }
                #endif
            }

        }

    }
}