/// <summary>
        /// Information about implementation-dependent support for internal formats can be queried with the command GetInternalformativ
        /// No more than 1 int will be returned. If more data are available, they will be ignored and no error will be generated.
        /// </summary>
        /// <param name="target">target indicates the usage of the internalformat, and must be one the targets listed in enum.</param>
        /// <param name="internalFormat">internalformat can be any value</param>
        /// <param name="pname">The INTERNALFORMAT_SUPPORTED pname can be used to determine if the internal format is supported, and the other pnames are defined in terms of whether or not the format is supported</param>
        /// <returns>No more than 1 int will be returned. If more data are available, they will be ignored and no error will be generated.</returns>
        public static int GetInternalformativ(GetInternalformatTargets target, PixelInternalFormat internalFormat, GetInternalformatParameters pname)
        {
            int tmp = 0;

            Delegates.glGetInternalformativ(target, internalFormat, pname, 1, ref tmp);
            return(tmp);
        }
 //ARB_internalformat_query
 /// <summary>
 /// Information about implementation-dependent support for internal formats can be queried with the command GetInternalformativ
 /// </summary>
 /// <param name="target">target indicates the usage of the internalformat, and must be one the targets listed in enum.</param>
 /// <param name="internalFormat">internalformat can be any value</param>
 /// <param name="pname">The INTERNALFORMAT_SUPPORTED pname can be used to determine if the internal format is supported, and the other pnames are defined in terms of whether or not the format is supported</param>
 /// <param name="params">No more than @params.Length integers will be written into params. If more data are available, they will be ignored and no error will be generated.</param>
 public static void GetInternalformativ(GetInternalformatTargets target, PixelInternalFormat internalFormat, GetInternalformatParameters pname, int[] @params)
 {
     Delegates.glGetInternalformativ(target, internalFormat, pname, @params.Length, ref @params[0]);
 }
 /// <summary>
 /// Retrives a single long parameter value from a combination of target and paramenter name.
 /// </summary>
 /// <param name="target">Where should Internalformat be used.</param>
 /// <param name="internalformat">The internal format to query.</param>
 /// <param name="pname">Name of parameter to retrive for above combo.</param>
 /// <returns></returns>
 public static long GetInternalformati64v(GetInternalformatTargets target, PixelInternalFormat internalformat, GetInternalformatParameters pname)
 {
     long tmp = 0;
     Delegates.glGetInternalformati64v(target, internalformat, pname, 1, ref tmp);
     return tmp;
 }
 //ARB_internalformat_query2
 /// <summary>
 /// Retrives an array of values for a combination of target and internal format query of parameter value.
 /// aka check if render to RGBA32F is something we should do?
 ///     if(GetInternalformati64v(Renderbuffer, RGBA32F, InternalFormatSupported) == FULL_SUPPORT)
 ///     {
 ///         // render.
 ///     }
 /// </summary>
 /// <param name="target">Where should internalformat be used?</param>
 /// <param name="internalformat">The internal format to query</param>
 /// <param name="pname">Name of parameter to retrive data for above combo.</param>
 /// <param name="params">Long array big enough to retrive expected result.</param>
 public static void GetInternalformati64v(GetInternalformatTargets target, PixelInternalFormat internalformat, GetInternalformatParameters pname, long[] @params)
 {
     Delegates.glGetInternalformati64v(target, internalformat, pname, @params.Length, ref @params[0]);
 }
 //ARB_copy_image
 /// <summary>
 /// Copies parts of an texture mipmap level to another textures mipmap level.
 /// The Copy can not make the destination target larger to source target.
 /// </summary>
 /// <param name="srcName"></param>
 /// <param name="srcTarget"></param>
 /// <param name="srcLevel"></param>
 /// <param name="srcX"></param>
 /// <param name="srcY"></param>
 /// <param name="srcZ"></param>
 /// <param name="dstName"></param>
 /// <param name="dstTarget"></param>
 /// <param name="dstLevel"></param>
 /// <param name="dstX"></param>
 /// <param name="dstY"></param>
 /// <param name="dstZ"></param>
 /// <param name="srcWidth"></param>
 /// <param name="srcHeight"></param>
 /// <param name="srcDepth"></param>
 public static void CopyImageSubData(uint srcName, GetInternalformatTargets srcTarget, int srcLevel, int srcX, int srcY, int srcZ, uint dstName, GetInternalformatTargets dstTarget, int dstLevel, int dstX, int dstY, int dstZ, int srcWidth, int srcHeight, int srcDepth)
 {
     Delegates.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
 }
 //ARB_copy_image
 /// <summary>
 /// Copies parts of an texture mipmap level to another textures mipmap level.
 /// The Copy can not make the destination target larger to source target.
 /// </summary>
 /// <param name="srcName"></param>
 /// <param name="srcTarget"></param>
 /// <param name="srcLevel"></param>
 /// <param name="srcX"></param>
 /// <param name="srcY"></param>
 /// <param name="srcZ"></param>
 /// <param name="dstName"></param>
 /// <param name="dstTarget"></param>
 /// <param name="dstLevel"></param>
 /// <param name="dstX"></param>
 /// <param name="dstY"></param>
 /// <param name="dstZ"></param>
 /// <param name="srcWidth"></param>
 /// <param name="srcHeight"></param>
 /// <param name="srcDepth"></param>
 public static void CopyImageSubData(uint srcName, GetInternalformatTargets srcTarget, int srcLevel, int srcX, int srcY, int srcZ, uint dstName, GetInternalformatTargets dstTarget, int dstLevel, int dstX, int dstY, int dstZ, int srcWidth, int srcHeight, int srcDepth)
 {
     Delegates.glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
 }