<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Tao.OpenGl</name>
    </assembly>
    <members>
        <member name="T:Tao.OpenGl.Gl">
            <summary>
            OpenGL binding for .NET, implementing OpenGL 2.1, plus extensions.
            </summary>
            <remarks>
            <para>
            This class contains all OpenGL enums and functions defined in the 2.1 specification.
            The official .spec files can be found at: http://opengl.org/registry/.
            </para>
            <para>
            We rely on static initialization to obtain the entry points for OpenGL functions.
            Please ensure that a valid OpenGL context has been made current in the pertinent thread <b>before</b>
            any OpenGL functions are called (toolkits like GLUT, SDL or GLFW will automatically take care of
            the context initialization process). Without a valid OpenGL context, we will only be able
            to retrieve statically exported entry points (typically corresponding to OpenGL version 1.1 under Windows,
            1.3 under Linux and 1.4 under Windows Vista), and extension methods will need to be loaded manually.
            </para>
            <para>
            If you prefer to have more control on extension loading, you can use the
            ReloadFunctions or ReloadFunction methods to manually force the initialisation of OpenGL entry points.
            The ReloadFunctions method should be called whenever you change an existing visual or pixelformat. This
            generally happens when you change the color/stencil/depth buffer associated with a window (but probably
            not the resolution). This may or may not be necessary under Linux/MacOS, but is generally required for
            Windows.
            </para>
            <para>
            You can use the Gl.IsExtensionSupported method to check whether any given category of extension functions
            exists in the current OpenGL context. The results can be cached to speed up future searches.
            Keep in mind that different OpenGL contexts may support different extensions, and under different entry
            points. Always check if all required extensions are still supported when changing visuals or pixel
            formats.
            </para>
            <para>
            You may retrieve the entry point for an OpenGL function using the Gl.GetDelegate method.
            </para>
            <para>
            <see href="http://opengl.org/registry/"/>
            <seealso cref="M:Tao.OpenGl.Gl.IsExtensionSupported(System.String)"/>
            <seealso cref="M:Tao.OpenGl.Gl.GetDelegate(System.String,System.Type)"/>
            <seealso cref="M:Tao.OpenGl.Gl.ReloadFunctions"/>
            </para>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Gl.IsExtensionSupported(System.String)">
            <summary>
            Determines whether the specified OpenGL extension category is available in
            the current OpenGL context. Equivalent to IsExtensionSupported(name, true)
            </summary>
            <param name="name">The string for the OpenGL extension category (eg. "GL_ARB_multitexture")</param>
            <returns>True if the specified extension is available, false otherwise.</returns>
        </member>
        <member name="M:Tao.OpenGl.Gl.GetDelegate(System.String,System.Type)">
            <summary>
            Creates a System.Delegate that can be used to call an OpenGL function, core or extension.
            </summary>
            <param name="name">The name of the OpenGL function (eg. "glNewList")</param>
            <param name="signature">The signature of the OpenGL function.</param>
            <returns>
            A System.Delegate that can be used to call this OpenGL function, or null if the specified
            function name did not correspond to an OpenGL function.
            </returns>
        </member>
        <member name="M:Tao.OpenGl.Gl.ReloadFunctions">
            <summary>
            Loads all OpenGL functions (core and extensions).
            </summary>
            <remarks>
            <para>
            This function will be automatically called the first time you use any opengl function. There is 
            </para>
            <para>
            Call this function manually whenever you need to update OpenGL entry points.
            This need may arise if you change the pixelformat/visual, or in case you cannot
            (or do not want) to use the automatic initialization of the GL class.
            </para>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Gl.Load(System.String)">
            <summary>
            Tries to reload the given OpenGL function (core or extension).
            </summary>
            <param name="function">The name of the OpenGL function (i.e. glShaderSource)</param>
            <returns>True if the function was found and reloaded, false otherwise.</returns>
            <remarks>
            <para>
            Use this function if you require greater granularity when loading OpenGL entry points.
            </para>
            <para>
            While the automatic initialisation will load all OpenGL entry points, in some cases
            the initialisation can take place before an OpenGL Context has been established.
            In this case, use this function to load the entry points for the OpenGL functions
            you will need, or use ReloadFunctions() to load all available entry points.
            </para>
            <para>
            This function returns true if the given OpenGL function is supported, false otherwise.
            </para>
            <para>
            To query for supported extensions use the IsExtensionSupported() function instead.
            </para>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Gl.BuildExtensionList">
            <summary>
            Builds a cache of all supported extensions.
            </summary>
        </member>
        <member name="M:Tao.OpenGl.Gl.GetAddress(System.String)">
            <summary>
            Retrieves the entry point for a dynamically exported OpenGL function.
            </summary>
            <param name="function">The function string for the OpenGL function (eg. "glNewList")</param>
            <returns>
            An IntPtr contaning the address for the entry point, or IntPtr.Zero if the specified
            OpenGL function is not dynamically exported.
            </returns>
            <remarks>
            <para>
            The Marshal.GetDelegateForFunctionPointer method can be used to turn the return value
            into a call-able delegate.
            </para>
            <para>
            This function is cross-platform. It determines the underlying platform and uses the
            correct wgl, glx or agl GetAddress function to retrieve the function pointer.
            </para>
            <see cref="M:System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(System.IntPtr,System.Type)"/>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Gl.DetectUnixKernel">
            <summary>
            Executes "uname" which returns a string representing the name of the
            underlying Unix kernel.
            </summary>
            <returns>"Unix", "Linux", "Darwin" or null.</returns>
            <remarks>Source code from "Mono: A Developer's Notebook"</remarks>
        </member>
        <member name="M:Tao.OpenGl.Gl.GetExtensionDelegate(System.String,System.Type)">
            <summary>
            Creates a System.Delegate that can be used to call a dynamically exported OpenGL function.
            </summary>
            <param name="name">The name of the OpenGL function (eg. "glNewList")</param>
            <param name="signature">The signature of the OpenGL function.</param>
            <returns>
            A System.Delegate that can be used to call this OpenGL function or null
            if the function is not available in the current OpenGL context.
            </returns>
        </member>
        <member name="T:Tao.OpenGl.Gl.Imports">
            <summary>
            Contains DllImports for the core OpenGL functions.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Gl.Imports.FunctionMap">
            <summary>
             Build a string->MethodInfo map to speed up extension loading.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.OpenGLExtensionImport">
            <summary>
            
            </summary>
        </member>
        <member name="F:Tao.OpenGl.OpenGLExtensionImport.ExtensionName">
            <summary>
            
            </summary>
        </member>
        <member name="F:Tao.OpenGl.OpenGLExtensionImport.EntryPoint">
            <summary>
            
            </summary>
        </member>
        <member name="M:Tao.OpenGl.OpenGLExtensionImport.#ctor(System.String,System.String)">
            <summary>
            
            </summary>
            <param name="ExtensionName"></param>
            <param name="EntryPoint"></param>
        </member>
        <member name="T:Tao.OpenGl.GlExtensionLoader">
            <summary>
            
            </summary>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.GetProcAddress(System.String)">
            <summary>
            
            </summary>
            <param name="s"></param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.IsExtensionSupported(System.String)">
            <summary>
            Returns trueif the extension with the given name is supported
            in the global static context.
            </summary>
            <param name="extname">The extension name.</param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.IsExtensionSupported(System.Object,System.String)">
            <summary>
            Returns true if the extension with the given name is supported
            in the given context.
            </summary>
            <param name="contextGl">The context which to query.</param>
            <param name="extname">The extension name.</param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.LoadExtension(System.String)">
            <summary>
            Attempt to load the extension with the specified name into the
            global static context.  Returns true on success.
            </summary>
            <param name="extname">The extension name.</param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.LoadExtension(System.Object,System.String)">
            <summary>
            
            </summary>
            <param name="contextGl"></param>
            <param name="extname"></param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.LoadExtension(System.Object,System.String,System.Boolean)">
            <summary>
            
            </summary>
            <param name="contextGl"></param>
            <param name="extname"></param>
            <param name="forceLoad"></param>
            <returns></returns>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.LoadAllExtensions">
            <summary>
            
            </summary>
        </member>
        <member name="M:Tao.OpenGl.GlExtensionLoader.LoadAllExtensions(System.Object)">
            <summary>
            
            </summary>
            <param name="contextGl"></param>
        </member>
        <member name="T:Tao.OpenGl.Glu">
            <summary>
                GLU (OpenGL Utility) binding for .NET, implementing GLU 1.3.
            </summary>
            <remarks>
                <para>
                    Binds functions and definitions in glu32.dll or libGLU.so.
                </para>
                <para>
                    The OpenGL Utility (GLU) library contains several groups of functions that
                    complement the core OpenGL interface by providing support for auxiliary features.
                    These features include: mipmapping, matrix manipulation, polygon tessellation,
                    quadrics, NURBS, and error handling.
                </para>
                <para>
                    Mipmapping routines include image scaling and automatic mipmap generation.  A
                    variety of matrix manipulation functions build projection and viewing matrices,
                    or project vertices from one coordinate system to another.  Polygon tessellation
                    routines convert concave polygons into triangles for easy rendering.  Quadrics
                    support renders a few basic quadrics such as spheres and cones.  NURBS code maps
                    complicated NURBS curves and trimmed surfaces into simpler OpenGL evaluators.
                    Lastly, an error lookup routine translates OpenGL and GLU error codes into
                    strings.  GLU library routines may call OpenGL library routines.  Thus, an OpenGL
                    context should be made current before calling any GLU functions.  Otherwise an
                    OpenGL error may occur.
                </para>
                <para>
                    These utility functions make use of core OpenGL functions, so any OpenGL
                    implementation is guaranteed to support the utility functions.
                </para>
            </remarks>
        </member>
        <member name="F:Tao.OpenGl.Glu.CALLING_CONVENTION">
            <summary>
                Specifies the calling convention.
            </summary>
            <remarks>
                Specifies <see cref="F:System.Runtime.InteropServices.CallingConvention.Winapi"/> for Windows and
                Linux, to indicate that the default should be used.
            </remarks>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_VERSION_1_1">
            <summary>
                GLU API revision.
            </summary>
            <remarks>
                Specifies GLU 1.1.
            </remarks>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_VERSION_1_2">
            <summary>
                GLU API revision.
            </summary>
            <remarks>
                Specifies GLU 1.2.
            </remarks>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_VERSION_1_3">
            <summary>
                GLU API revision.
            </summary>
            <remarks>
                Specifies GLU 1.3.
            </remarks>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INCOMPATIBLE_GL_VERSION">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_VERSION">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_EXTENSIONS">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TRUE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_FALSE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_SMOOTH">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_FLAT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NONE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_POINT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_LINE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_FILL">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_SILHOUETTE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OUTSIDE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INSIDE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_RULE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_TOLERANCE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_ODD">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_NONZERO">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_POSITIVE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_NEGATIVE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_ABS_GEQ_TWO">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_BEGIN">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_VERTEX">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_END">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_END">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_EDGE_FLAG">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR1">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR2">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR3">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR4">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR5">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR6">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR7">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_ERROR8">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_CULLING">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_U_STEP">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_V_STEP">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_MODE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_MODE_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OUTLINE_POLYGON">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_OUTLINE_PATCH">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_ERROR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TEX_COORD_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_END">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_END_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_TEX_COORD_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA_EXT">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR2">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR3">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR4">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR5">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR6">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR7">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR8">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR9">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR10">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR11">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR12">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR13">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR14">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR15">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR16">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR17">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR18">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR19">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR20">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR21">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR22">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR23">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR24">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR25">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR26">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR27">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR28">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR29">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR30">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR31">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR32">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR33">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR34">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR35">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR36">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_CW">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_CCW">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_INTERIOR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_EXTERIOR">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_UNKNOWN">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_EXT_object_space_tess">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLU_EXT_nurbs_tessellator">
            <summary>
                Unknown.  Unable to locate definitive documentation on this constant.
            </summary>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsColorCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsColorDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsEndCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsEndDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsErrorCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsNormalCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsNormalDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsTexCoordCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsTexCoordDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsVertexCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsVertexDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineCallback1)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEdgeFlagCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEdgeFlagDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEndCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEndDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessErrorCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessErrorDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexCallback1)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.__gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexDataCallback)">
            <summary>
                Called from <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <remarks>
                <b>This method is not CLS-compliant due to naming conventions.</b>
            </remarks>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a Non-Uniform Rational B-Spline (NURBS) curve definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <remarks>
                <para>
                    Use <b>gluBeginCurve</b> to mark the beginning of a NURBS curve definition.
                    After calling <b>gluBeginCurve</b>, make one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> to define the attributes of the curve.  Exactly
                    one of the calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> must have a curve type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_4"/>.  To
                    mark the end of the NURBS curve definition, call <see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    OpenGL evaluators are used to render the NURBS curve as a series of line
                    segments.  Evaluator state is preserved during rendering with
                    <c>Gl.glPushAttrib(Gl.GL_EVAL_BIT)</c> and <c>Gl.glPopAttrib</c>.  For
                    information on exactly what state these calls preserve, see
                    <see cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS curve with normals; texture
                    coordinates and normals are also specified as NURBS curves:
                </para>
                <para>
                    <code>
                        Glu.gluBeginCurve(nobj);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_TEXTURE_COORD_2);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_NORMAL);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_VERTEX_4);
                        Glu.gluEndCurve(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glPopAttrib"/>
            <seealso cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBeginPolygon(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <para>
                    <b>gluBeginPolygon</b> delimits the definition of a nonconvex polygon.  To
                    define such a polygon, first call <b>gluBeginPolygon</b>.  Then define the
                    contours of the polygon by calling <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> for each
                    vertex and <see cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/> to start each new contour.  Finally,
                    call <see cref="M:Tao.OpenGl.Glu.gluEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> to signal the end of the definition.  See
                    the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> and <see cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/> reference
                    pages for more details.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated, and
                    the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    This command is obsolete and is provided for backward compatibility only.
                    Calls to <b>gluBeginPolygon</b> are mapped to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> followed by
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Calls to <see cref="M:Tao.OpenGl.Glu.gluEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    are mapped to <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/> followed by
                    <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    A quadrilateral with a triangular hole in it can be described like this:
                </para>
                <para>
                    <code>
                        Glu.gluBeginPolygon(tobj);
                            Glu.gluTessVertex(tobj, v1, v1);
                            Glu.gluTessVertex(tobj, v2, v2);
                            Glu.gluTessVertex(tobj, v3, v3);
                            Glu.gluTessVertex(tobj, v4, v4);
                        Glu.gluNextContour(tobj, Glu.GLU_INTERIOR);
                            Glu.gluTessVertex(tobj, v5, v5);
                            Glu.gluTessVertex(tobj, v6, v6);
                            Glu.gluTessVertex(tobj, v7, v7);
                        Glu.gluEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a NURBS surface definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <remarks>
                <para>
                    Use <b>gluBeginSurface</b> to mark the beginning of a NURBS surface
                    definition.  After calling <b>gluBeginSurface</b>, make one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/> to define the attributes of the surface.
                    Exactly one of these calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/> must have a
                    surface type of <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_4"/>.  To mark the end of the NURBS surface
                    definition, call <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    Trimming of NURBS surfaces is supported with <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>, <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>, and
                    <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>.  See the <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference
                    page for details. 
                </para>
                <para>
                    OpenGL evaluators are used to render the NURBS surface as a set of polygons.
                    Evaluator state is preserved during rendering with
                    <c>Gl.glPushAttrib(Gl.GL_EVAL_BIT)</c> and <c>Gl.glPopAttrib()</c>.  See the
                    <see cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/> reference page for details on exactly what
                    state these calls preserve.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS surface with normals; the
                    texture coordinates and normals are also described as NURBS surfaces:
                </para>
                <para>
                    <code>
                        Glu.gluBeginSurface(nobj);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_TEXTURE_COORD_2);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_NORMAL);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_VERTEX_4);
                        Glu.gluEndSurface(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a NURBS trimming loop definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>). 
            </param>
            <remarks>
                <para>
                    Use <b>gluBeginTrim</b> to mark the beginning of a trimming loop, and
                    <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> to mark the end of a trimming loop.  A trimming
                    loop is a set of oriented curve segments (forming a closed curve) that define
                    boundaries of a NURBS surface.  You include these trimming loops in the
                    definition of a NURBS surface, between calls to
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> and <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    The definition for a NURBS surface can contain many trimming loops.  For
                    example, if you wrote a definition for a NURBS surface that resembled a
                    rectangle with a hole punched out, the definition would contain two trimming
                    loops.  One loop would define the outer edge of the rectangle; the other
                    would define the hole punched out of the rectangle.  The definitions of each
                    of these trimming loops would be bracketed by a <b>gluBeginTrim</b> and
                    <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> pair.
                </para>
                <para>
                    The definition of a single closed trimming loop can consist of multiple curve
                    segments, each described as a piecewise linear curve (see
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>) or as a single NURBS curve (see
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>), or as a combination of both in any order.  The
                    only library calls that can appear in a trimming loop definition (between the
                    calls to <b>gluBeginTrim</b> and <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>) are
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/> and <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
                <para>
                    The area of the NURBS surface that is displayed is the region in the domain
                    to the left of the trimming curve as the curve parameter increases.  Thus,
                    the retained region of the NURBS surface is inside a counterclockwise
                    trimming loop and outside a clockwise trimming loop.  For the rectangle
                    mentioned earlier, the trimming loop for the outer edge of the rectangle runs
                    counterclockwise, while the trimming loop for the punched-out hole runs
                    clockwise.
                </para>
                <para>
                    If you use more than one curve to define a single trimming loop, the curve
                    segments must form a closed loop (that is, the endpoint of each curve must be
                    the starting point of the next curve, and the endpoint of the final curve
                    must be the starting point of the first curve).  If the endpoints of the
                    curve are sufficiently close together but not exactly coincident, they will
                    be coerced to match.  If the endpoints are not sufficiently close, an error
                    results (see <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    If a trimming loop definition contains multiple curves, the direction of the
                    curves must be consistent (that is, the inside must be to the left of all of
                    the curves).  Nested trimming loops are legal as long as the curve
                    orientations alternate correctly.  If trimming curves are self-intersecting,
                    or intersect one another, an error results.
                </para>
                <para>
                    If no trimming information is given for a NURBS surface, the entire surface
                    is drawn.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    This code fragment defines a trimming loop that consists of one piecewise
                    linear curve, and two NURBS curves:
                </para>
                <para>
                    <code>
                        Glu.gluBeginTrim(nobj);
                            Glu.gluPwlCurve(..., Glu.GLU_MAP1_TRIM_2);
                            Glu.gluNurbsCurve(..., Glu.GLU_MAP1_TRIM_2);
                            Glu.gluNurbsCurve(..., Glu.GLU_MAP1_TRIM_3);
                        Glu.gluEndTrim(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameterfv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a subset of one-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                or 4 or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width in pixels of the texture image.  This should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for data.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmapLevels</b> builds a subset of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating data in half until size 1×1 is reached.  At each level, each texel
                    in the halved mipmap level is an average of the corresponding two texels in
                    the larger mipmap level.  <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load
                    these mipmap levels from <i>min</i> to <i>max</i>.  If <i>max</i> is larger
                    than the highest mipmap level for the texture of the specified size, then a
                    GLU error code is returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is
                    loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, the following
                    levels are possible: 16×1, 8×1, 4×1, 2×1, 1×1.  These correspond to levels 2
                    through 6 respectively.  If <i>min</i> is 3 and <i>max</i> is 5, then only
                    mipmap levels 8×1, 4×1 and 2×1 are loaded.  However, if <i>max</i> is 7 then
                    an error is returned and nothing is loaded since <i>max</i> is larger than
                    the highest mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2((width)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>level</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild1DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> are not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a one-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_1D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild1DMipmaps</b> builds a series of prefiltered one-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> of <i>data</i> is checked to see if it is a power
                    of 2.  If not, a copy of <i>data</i> is scaled up or down to the nearest
                    power of 2.  (If <i>width</i> is exactly between powers of 2, then the copy
                    of <i>data</i> will scale upwards.)  This copy will be used for subsequent
                    mipmapping operations described below.  For example, if <i>width</i> is 57
                    then a copy of <i>data</i> will scale up to 64 before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, width
                    is continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half until size 1×1 is reached.  At each level, each texel in the halved
                    mipmap level is an average of the corresponding two texels in the larger
                    mipmap level.
                </para>
                <para>
                    <b>glTexImage1D</b> is called to load each of these mipmap levels.  Level 0
                    is a copy of <i>data</i>.  The highest level is <c>log2(width)</c>.  For
                    example, if <i>width</i> is 64 and the implementation can store a texture of
                    this size, the following mipmap levels are built: 64×1, 32×1, 16×1, 8×1, 4×1,
                    2×1 and 1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>type</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for the <i>data</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Note that there is no direct way of querying the maximum level.  This can be
                    derived indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First,
                    query for the width actually used at level 0.  (The width may not be equal to
                    <i>width</i> since proxy textures might have scaled it to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(width)</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater, and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i> or <i>type</i>
                    are not legal. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a subset of two-dimensional mipmap levels.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies the width, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies the height, in pixels, of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmapLevels</b> builds a subset of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                    decimating <i>data</i> in half along both dimensions until size 1×1 is
                    reached.  At each level, each texel in the halved mipmap level is an average
                    of the corresponding four texels in the larger mipmap level.  (In the case of
                    rectangular images, the decimation will ultimately reach an N×1 or 1×N
                    configuration.  Here, two texels are averaged instead.)
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load these mipmap levels from
                    <i>min</i> to <i>max</i>.  If <i>max</i> is larger than the highest mipmap
                    level for the texture of the specified size, then a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16 and <i>height</i> is
                    8, the following levels are possible: 16×8, 8×4, 4×2, 2×1, 1×1.  These
                    correspond to levels 2 through 6 respectively.  If <i>min</i> is 3 and
                    <i>max</i> is 5, then only mipmap levels 8×4, 4×2 and 2×1 are loaded.
                    However, if <i>max</i> is 7 then an error is returned and nothing is loaded
                    since <i>max</i> is larger than the highest mipmap level which is, in this
                    case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild2DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>. 
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a two-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_2D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/> or
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild2DMipmaps</b> builds a series of prefiltered two-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for
                    the antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i> and <i>height</i> of <i>data</i> are checked to
                    see if they are a power of 2.  If not, a copy of <i>data</i> (not <i>data</i>
                    itself), is scaled up or down to the nearest power of 2.  This copy will be
                    used for subsequent mipmapping operations described below.  (If <i>width</i>
                    or <i>height</i> is exactly between powers of 2, then the copy of <i>data</i>
                    will scale upwards.)  For example, if <i>width</i> is 57 and <i>height</i> is
                    23 then a copy of <i>data</i> will scale up to 64 in <i>width</i> and down to
                    16 in depth, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, both
                    dimensions are continually halved until it fits.  (If the OpenGL version is
                    &lt;= 1.0, both maximum texture dimensions are clamped to the value returned
                    by <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> with the argument
                    <see cref="F:Tao.OpenGl.Gl.GL_MAX_TEXTURE_SIZE"/>.)
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along both dimensions until size 1×1 is reached.  At each level, each
                    texel in the halved mipmap level is an average of the corresponding four
                    texels in the larger mipmap level.  (In the case of rectangular images, the
                    decimation will ultimately reach an N×1 or 1×N configuration.  Here, two
                    texels are averaged instead.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height))</c>.  For example, if <i>width</i> is 64 and
                    <i>height</i> is 16 and the implementation can store a texture of this size,
                    the following mipmap levels are built: 64×16, 32×8, 16×4, 8×2, 4×1, 2×1 and
                    1×1.  These correspond to levels 0 through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width and height actually used at level 0.  (The width and height may not
                    be equal to <i>width</i> and <i>height</i> respectively since proxy textures
                    might have scaled them to fit the implementation.)  Then the maximum level
                    can be derived from the formula <c>log2(max(width,height))</c>.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater and if the GLU version is 1.3 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i> or <i>height</i>
                    is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a subset of three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width of the texture image.  Should be a power of 2.
            </param>
            <param name="height">
                Specifies, in pixels, the height of the texture image.  Should be a power of 2.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth of the texture image.  Should be a power of 2.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="level">
                Specifies the mipmap level of the image data.
            </param>
            <param name="min">
                Specifies the minimum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="max">
                Specifies the maximum mipmap level to pass to <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmapLevels</b> builds a subset of prefiltered
                    three-dimensional texture maps of decreasing resolutions called a mipmap.
                    This is used for the antialiasing of texture mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                     A series of mipmap levels from <i>min</i> to <i>max</i> is built by
                     decimating <i>data</i> in half along both dimensions until size 1×1×1 is
                     reached.  At each level, each texel in the halved mipmap level is an average
                     of the corresponding eight texels in the larger mipmap level.  (If exactly
                     one of the dimensions is 1, four texels are averaged.  If exactly two of the
                     dimensions are 1, two texels are averaged.)  <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
                     is called to load these mipmap levels from <i>min</i> to <i>max</i>.  If
                     <i>max</i> is larger than the highest mipmap level for the texture of the
                     specified size, then a GLU error code is returned (see
                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>) and nothing is loaded.
                </para>
                <para>
                    For example, if <i>level</i> is 2 and <i>width</i> is 16, <i>height</i> is 8
                    and <i>depth</i> is 4, the following levels are possible: 16×8×4, 8×4×2,
                    4×2×1, 2×1×1, 1×1×1.  These correspond to levels 2 through 6 respectively.
                    If <i>min</i> is 3 and <i>max</i> is 5, then only mipmap levels 8×4×2,
                    4×2×1 and 2×1×1 are loaded.  However, if <i>max</i> is 7 then an error is
                    returned and nothing is loaded since <i>max</i> is larger than the highest
                    mipmap level which is, in this case, 6.
                </para>
                <para>
                    The highest mipmap level can be derived from the formula
                    <c>log2(max(width,height,depth)*(2^level))</c>.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluBuild3DMipmapLevels</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>level</i> &gt; <i>min</i>,
                    <i>min</i> &lt; 0, <i>max</i> &lt; <i>min</i> or <i>max</i> is &gt; the
                    highest mipmap level for <i>data</i>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Double[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int16[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Single[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt16[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.UInt32[0:,0:,0:])">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Void*)">
            <summary>
                Builds a three-dimensional mipmap.
            </summary>
            <param name="target">
                Specifies the target texture.  Must be <see cref="F:Tao.OpenGl.Gl.GL_TEXTURE_3D"/>.
            </param>
            <param name="internalFormat">
                Requests the internal storage format of the texture image.  Must be 1, 2, 3,
                4, or one of the following symbolic constants: <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA12"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE4_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE6_ALPHA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE8_ALPHA8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE12_ALPHA12"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE16_ALPHA16"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY4"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY12"/>, <see cref="F:Tao.OpenGl.Gl.GL_INTENSITY16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_R3_G3_B2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB12"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB16"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA4"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB5_A1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA8"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB10_A2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA12"/>, or <see cref="F:Tao.OpenGl.Gl.GL_RGBA16"/>.
            </param>
            <param name="width">
                Specifies, in pixels, the width in pixels of the texture image.
            </param>
            <param name="height">
                Specifies, in pixels, the height in pixels of the texture image.
            </param>
            <param name="depth">
                Specifies, in pixels, the depth in pixels of the texture image.
            </param>
            <param name="format">
                Specifies the format of the pixel data.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RED"/>, <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>, <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, or <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="type">
                Specifies the data type for <i>data</i>.  Must be one of:
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="data">
                Specifies a pointer to the image data in memory.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluBuild3DMipmaps</b> builds a series of prefiltered three-dimensional
                    texture maps of decreasing resolutions called a mipmap.  This is used for the
                    antialiasing of texture-mapped primitives.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    Initially, the <i>width</i>, <i>height</i> and <i>depth</i> of <i>data</i>
                    are checked to see if they are a power of two.  If not, a copy of <i>data</i>
                    (not <i>data</i> itself), is scaled up or down to the nearest power of two.
                    This copy will be used for subsequent mipmapping operations described below.
                    (If <i>width</i>, <i>height</i> or <i>depth</i> is exactly between powers of
                    2, then the copy of <i>data</i> will scale upwards.)  For example, if
                    <i>width</i> is 57, <i>height</i> is 23 and <i>depth</i> is 24 then a copy of
                    <i>data</i> will scale up to 64 in <i>width</i>, down to 16 in <i>height</i>
                    and up to 32 in <i>depth</i>, before mipmapping takes place.
                </para>
                <para>
                    Then, proxy textures (see <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>) are used to
                    determine if the implementation can fit the requested texture.  If not, all
                    three dimensions are continually halved until it fits.
                </para>
                <para>
                    Next, a series of mipmap levels is built by decimating a copy of <i>data</i>
                    in half along all three dimensions until size 1×1×1 is reached.  At each
                    level, each texel in the halved mipmap level is an average of the
                    corresponding eight texels in the larger mipmap level.  (If exactly one of
                    the dimensions is 1, four texels are averaged.  If exactly two of the
                    dimensions are 1, two texels are averaged.)
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> is called to load each of these mipmap levels.
                    Level 0 is a copy of <i>data</i>.  The highest level is
                    <c>log2(max(width,height,depth))</c>.  For example, if <i>width</i> is 64,
                    <i>height</i> is 16 and <i>depth</i> is 32, and the implementation can store
                    a texture of this size, the following mipmap levels are built: 64×16×32,
                    32×8×16, 16×4×8, 8×2×4, 4×1×2, 2×1×1 and 1×1×1.  These correspond to levels 0
                    through 6, respectively.
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for <i>format</i> parameter.  See the
                    <see cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of the
                    acceptable values for <i>type</i> parameter.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    There is no direct way of querying the maximum level.  This can be derived
                    indirectly via <see cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>.  First, query for
                    the width, height and depth actually used at level 0.  (The width, height
                    and depth may not be equal to <i>width</i>, <i>height</i> and <i>depth</i>
                    respectively since proxy textures might have scaled them to fit the
                    implementation.)  Then the maximum level can be derived from the formula
                    <c>log2(max(width,height,depth))</c>.
                </para>
                <para>
                    <b>gluBuild3DMipmaps</b> is only available if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>width</i>, <i>height</i>,
                    or <i>depth</i> is &lt; 1.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>internalFormat</i>,
                    <i>format</i>, or <i>type</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>type</i> is
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetTexLevelParameteriv(System.Int32,System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage1D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage2D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glTexImage3D(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmapLevels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluCheckExtension(System.String,System.String)">
            <summary>
                Determines if an extension name is supported.
            </summary>
            <param name="extensionName">
                Specifies an extension name.
            </param>
            <param name="extensionString">
                Specifies a space-separated list of extension names supported.
            </param>
            <returns>
                Returns <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> if <i>extensionName</i> is supported
                otherwise <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> is returned.
            </returns>
            <remarks>
                <para>
                    <b>gluCheckExtension</b> is used to check for the presence for OpenGL, GLU or
                    GLX extension names by passing the extension strings returned by
                    <see cref="M:Tao.OpenGl.Gl.glGetString(System.Int32)"/>, <see cref="M:Tao.OpenGl.Glu.gluGetString(System.Int32)"/>,
                    /*see cref="glXGetClientString" /&gt;*/, /*see cref="glXQueryExtensionsString" /&gt;*/,
                    or /*see cref="glXQueryServerString" /&gt;*/, respectively, as
                    <i>extensionString</i>.
                </para>
                <para>
                    Returns <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> if <i>extensionName</i> is supported
                    otherwise <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> is returned.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Cases where one extension name is a substring of another are correctly
                    handled.
                </para>
                <para>
                    There may or may not be leading or trailing blanks in <i>extensionString</i>.
                </para>
                <para>
                    Extension names should not contain embedded spaces.
                </para>
                <para>
                    All strings are null-terminated.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluGetString(System.Int32)"/>
            /*seealso cref="glXGetClientString" /&gt;*/
            /*seealso cref="glXQueryExtensionsString" /&gt;*/
            /*seealso cref="glXQueryServerString" /&gt;*/
        </member>
        <member name="M:Tao.OpenGl.Glu.gluCylinder(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Double,System.Int32,System.Int32)">
            <summary>
                Draws a cylinder.
            </summary>
            <param name="quad">
                Specifies the quadrics object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="baseRadius">
                Specifies the radius of the cylinder at <c>z = 0</c>.
            </param>
            <param name="topRadius">
                Specifies the radius of the cylinder at <c>z = height</c>.  If <i>top</i> is
                set to 0, this subroutine generates a cone.
            </param>
            <param name="height">
                Specifies the height of the cylinder.
            </param>
            <param name="slices">
                Specifies the number of subdivisions around the z axis.
            </param>
            <param name="stacks">
                Specifies the number of subdivisions along the z axis.
            </param>
            <remarks>
                <para>
                    <b>gluCylinder</b> draws a cylinder oriented along the z axis.  The base of
                    the cylinder is placed at z = 0, and the top at z = height.  Like a sphere,
                    a cylinder is subdivided around the z axis into slices, and along the z axis
                    into stacks.
                </para>
                <para>
                    Note that if <i>top</i> is set to 0.0, this routine generates a cone.
                </para>
                <para>
                    If the orientation is set to <see cref="F:Tao.OpenGl.Glu.GLU_OUTSIDE"/> (with
                    <see cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>), then any generated normals point away
                    from the z axis.  Otherwise, they point toward the z axis.
                </para>
                <para>
                    If texturing is turned on using the <see cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
                    subroutine, texture coordinates are generated so that t ranges linearly from
                    0.0 at z = 0 to 1.0 at z = height, and s ranges from 0.0 at the +y axis to
                    0.25 at the +x axis, as well as up to 0.5 at the -y axis and 0.75 at the
                    -x axis, then back to 1.0 at the +y axis.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPartialDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluSphere(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluDeleteNurbsRenderer(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Destroys a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object to be destroyed (created with
                <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <remarks>
                <b>gluDeleteNurbsRenderer</b> destroys the NURBS object (which was created with
                <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>) and frees any memory it uses.  Once
                <b>gluDeleteNurbsRenderer</b> has been called, <i>nurb</i> cannot be used again.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluDeleteQuadric(Tao.OpenGl.Glu.GLUquadric)">
            <summary>
                Destroys a quadrics object.
            </summary>
            <param name="quad">
                The quadric object to be destroyed (created with
                <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <remarks>
                <b>gluDeleteQuadric</b> destroys the quadrics object (created with
                <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>) and frees any memory it uses.  Once
                <b>gluDeleteQuadric</b> has been called, <i>quad</i> cannot be used again.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluDeleteTess(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Destroys a tessellation object.
            </summary>
            <param name="tess">
                The tessellation object to destroy (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <b>gluDeleteTess</b> destroys the indicated tessellation object (which was
                created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>) and frees any memory that it used.
                Once <b>gluDeleteTess</b> has been called, <i>tess</i> cannot be used again.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32)">
            <summary>
                Draws a disk.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="innerRadius">
                The inner radius of the disk (may be zero).
            </param>
            <param name="outerRadius">
                The outer radius of the disk.
            </param>
            <param name="slices">
                The number of subdivisions around the z-axis.
            </param>
            <param name="loops">
                The number of concentric rings about the origin into which the disk is subdivided.
            </param>
            <remarks>
                <para>
                    <b>gluDisk</b> renders a disk on the z = 0 plane.  The disk has a radius of
                    <i>outerRadius</i>, and contains a concentric circular hole with a radius of
                    <i>innerRadius</i>.  If <i>innerRadius</i> is 0, then no hole is generated.
                    The disk is subdivided around the z axis into slices (like pizza slices),
                    and also about the z axis into rings (as specified by <i>slices</i> and
                    <i>loops</i>, respectively).
                </para>
                <para>
                    With respect to orientation, the +z side of the disk is considered to be
                    "outside" (see <see cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>).  This means that if the
                    orientation is set to <see cref="F:Tao.OpenGl.Glu.GLU_OUTSIDE"/>, then any normals generated
                    point along the +z axis.  Otherwise, they point along the -z axis.
                </para>
                <para>
                    If texturing has been turned on (with <see cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>),
                    texture coordinates are generated linearly such that where r = outerRadius,
                    the value at (r, 0, 0) is (1, 0.5), at (0, r, 0) it is (0.5, 1), at
                    (-r, 0, 0) it is (0, 0.5), and at (0, -r, 0) it is (0.5, 0).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluCylinder(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPartialDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluSphere(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a Non-Uniform Rational B-Spline (NURBS) curve definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <remarks>
                <para>
                    Use <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/> to mark the beginning of a NURBS curve
                    definition.  After calling <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>, make one or more
                    calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> to define the attributes of the curve.
                    Exactly one of the calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> must have a curve
                    type of <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_4"/>.  To mark the end of the NURBS curve
                    definition, call <b>gluEndCurve</b>.
                </para>
                <para>
                    OpenGL evaluators are used to render the NURBS curve as a series of line
                    segments.  Evaluator state is preserved during rendering with
                    <c>Gl.glPushAttrib(Gl.GL_EVAL_BIT)</c> and <c>Gl.glPopAttrib</c>.  For
                    information on exactly what state these calls preserve, see
                    <see cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS curve with normals; texture
                    coordinates and normals are also specified as NURBS curves:
                </para>
                <para>
                    <code>
                        Glu.gluBeginCurve(nobj);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_TEXTURE_COORD_2);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_NORMAL);
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_VERTEX_4);
                        Glu.gluEndCurve(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glPopAttrib"/>
            <seealso cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluEndPolygon(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <para>
                    <see cref="M:Tao.OpenGl.Glu.gluBeginPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimits the definition of a nonconvex
                    polygon.  To define such a polygon, first call
                    <see cref="M:Tao.OpenGl.Glu.gluBeginPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>.  Then define the contours of the polygon by
                    calling <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> for each vertex and
                    <see cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/> to start each new contour.  Finally, call
                    <b>gluEndPolygon</b> to signal the end of the definition.  See the
                    <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> and <see cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/> reference
                    pages for more details.
                </para>
                <para>
                    Once <b>gluEndPolygon</b> is called, the polygon is tessellated, and the
                    resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    This command is obsolete and is provided for backward compatibility only.
                    Calls to <see cref="M:Tao.OpenGl.Glu.gluBeginPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> are mapped to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> followed by
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Calls to <b>gluEndPolygon</b> are mapped
                    to <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/> followed by
                    <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    A quadrilateral with a triangular hole in it can be described like this:
                </para>
                <para>
                    <code>
                        Glu.gluBeginPolygon(tobj);
                            Glu.gluTessVertex(tobj, v1, v1);
                            Glu.gluTessVertex(tobj, v2, v2);
                            Glu.gluTessVertex(tobj, v3, v3);
                            Glu.gluTessVertex(tobj, v4, v4);
                        Glu.gluNextContour(tobj, Glu.GLU_INTERIOR);
                            Glu.gluTessVertex(tobj, v5, v5);
                            Glu.gluTessVertex(tobj, v6, v6);
                            Glu.gluTessVertex(tobj, v7, v7);
                        Glu.gluEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a NURBS surface definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <remarks>
                <para>
                    Use <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> to mark the beginning of a NURBS surface
                    definition.  After calling <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>, make one or more
                    calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/> to define the attributes of the
                    surface.  Exactly one of these calls to <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/> must
                    have a surface type of <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_4"/>.  To mark the end of the NURBS surface
                    definition, call <b>gluEndSurface</b>.
                </para>
                <para>
                    Trimming of NURBS surfaces is supported with <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>, <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>, and
                    <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>.  See the <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference
                    page for details. 
                </para>
                <para>
                    OpenGL evaluators are used to render the NURBS surface as a set of polygons.
                    Evaluator state is preserved during rendering with
                    <c>Gl.glPushAttrib(Gl.GL_EVAL_BIT)</c> and <c>Gl.glPopAttrib()</c>.  See the
                    <see cref="M:Tao.OpenGl.Gl.glPushAttrib(System.Int32)"/> reference page for details on exactly what
                    state these calls preserve.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS surface with normals; the
                    texture coordinates and normals are also described as NURBS surfaces:
                </para>
                <para>
                    <code>
                        Glu.gluBeginSurface(nobj);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_TEXTURE_COORD_2);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_NORMAL);
                            Glu.gluNurbsSurface(nobj, ..., Gl.GL_MAP2_VERTEX_4);
                        Glu.gluEndSurface(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <see cref="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)">
            <summary>
                Delimits a NURBS trimming loop definition.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>). 
            </param>
            <remarks>
                <para>
                    Use <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> to mark the beginning of a trimming loop, and
                    <b>gluEndTrim</b> to mark the end of a trimming loop.  A trimming loop is a
                    set of oriented curve segments (forming a closed curve) that define
                    boundaries of a NURBS surface.  You include these trimming loops in the
                    definition of a NURBS surface, between calls to
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> and <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    The definition for a NURBS surface can contain many trimming loops.  For
                    example, if you wrote a definition for a NURBS surface that resembled a
                    rectangle with a hole punched out, the definition would contain two trimming
                    loops.  One loop would define the outer edge of the rectangle; the other
                    would define the hole punched out of the rectangle.  The definitions of each
                    of these trimming loops would be bracketed by a <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
                    and <b>gluEndTrim</b> pair.
                </para>
                <para>
                    The definition of a single closed trimming loop can consist of multiple curve
                    segments, each described as a piecewise linear curve (see
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>) or as a single NURBS curve (see
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>), or as a combination of both in any order.  The
                    only library calls that can appear in a trimming loop definition (between the
                    calls to <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> and <b>gluEndTrim</b> are
                    <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/> and <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
                <para>
                    The area of the NURBS surface that is displayed is the region in the domain
                    to the left of the trimming curve as the curve parameter increases.  Thus,
                    the retained region of the NURBS surface is inside a counterclockwise
                    trimming loop and outside a clockwise trimming loop.  For the rectangle
                    mentioned earlier, the trimming loop for the outer edge of the rectangle runs
                    counterclockwise, while the trimming loop for the punched-out hole runs
                    clockwise.
                </para>
                <para>
                    If you use more than one curve to define a single trimming loop, the curve
                    segments must form a closed loop (that is, the endpoint of each curve must be
                    the starting point of the next curve, and the endpoint of the final curve
                    must be the starting point of the first curve).  If the endpoints of the
                    curve are sufficiently close together but not exactly coincident, they will
                    be coerced to match.  If the endpoints are not sufficiently close, an error
                    results (see <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    If a trimming loop definition contains multiple curves, the direction of the
                    curves must be consistent (that is, the inside must be to the left of all of
                    the curves).  Nested trimming loops are legal as long as the curve
                    orientations alternate correctly.  If trimming curves are self-intersecting,
                    or intersect one another, an error results.
                </para>
                <para>
                    If no trimming information is given for a NURBS surface, the entire surface
                    is drawn.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    This code fragment defines a trimming loop that consists of one piecewise
                    linear curve, and two NURBS curves:
                </para>
                <para>
                    <code>
                        Glu.gluBeginTrim(nobj);
                            Glu.gluPwlCurve(..., Glu.GLU_MAP1_TRIM_2);
                            Glu.gluNurbsCurve(..., Glu.GLU_MAP1_TRIM_2);
                            Glu.gluNurbsCurve(..., Glu.GLU_MAP1_TRIM_3);
                        Glu.gluEndTrim(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)">
            <summary>
                Produces an error string from a GL or GLU error code.
            </summary>
            <param name="errorCode">
                An OpenGL or GLU error code.
            </param>
            <returns>
                A string representation of the error.
            </returns>
            <remarks>
                <para>
                    <b>gluErrorString</b> produces an error string from a GL or GLU error code.
                    The string is in ISO Latin 1 format.  For example,
                    <c>gluErrorString(Gl.GL_OUT_OF_MEMORY)</c> returns the string 'out of
                    memory'.
                </para>
                <para>
                    The standard GLU error codes are <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/>,
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/>, and <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.
                    Certain other GLU functions can return specialized error codes through
                    callbacks.  See the <see cref="M:Tao.OpenGl.Gl.glGetError"/> reference page for the list
                    of GL error codes.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <c>NULL</c> is returned if <i>errorCode</i> is not a valid GL or GLU error
                    code.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetError"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluErrorStringWIN(System.Int32)">
            <summary>
                Produces an error string from a GL or GLU error code.
            </summary>
            <param name="errorCode">
                An OpenGL or GLU error code.
            </param>
            <returns>
                A string representation of the error.
            </returns>
            <remarks>
                <para>
                    <b>gluErrorStringWIN</b> produces an error string from a GL or GLU error
                    code.  The string is in UNICODE format.  For example,
                    <c>gluErrorStringWIN(Gl.GL_OUT_OF_MEMORY)</c> returns the string 'out of
                    memory'.
                </para>
                <para>
                    The standard GLU error codes are <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/>,
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/>, and <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.
                    Certain other GLU functions can return specialized error codes through
                    callbacks.  See the <see cref="M:Tao.OpenGl.Gl.glGetError"/> reference page for the list
                    of GL error codes.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <c>NULL</c> is returned if <i>errorCode</i> is not a valid GL or GLU error
                    code.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetError"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluErrorUnicodeStringEXT(System.Int32)">
            <summary>
                Produces an error string from a GL or GLU error code.
            </summary>
            <param name="errorCode">
                An OpenGL or GLU error code.
            </param>
            <returns>
                A Unicode string representation of the error.
            </returns>
            <remarks>
                <para>
                    <b>gluErrorString</b> produces an error string from a GL or GLU error code.
                    The string is in UNICODE format.  For example,
                    <c>gluErrorString(Gl.GL_OUT_OF_MEMORY)</c> returns the string 'out of
                    memory'.
                </para>
                <para>
                    The standard GLU error codes are <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/>,
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/>, and <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.
                    Certain other GLU functions can return specialized error codes through
                    callbacks.  See the <see cref="M:Tao.OpenGl.Gl.glGetError"/> reference page for the list
                    of GL error codes.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <c>NULL</c> is returned if <i>errorCode</i> is not a valid GL or GLU error
                    code.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetError"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[])">
            <summary>
                Gets a NURBS property.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="property">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/>, <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/>, <see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/>, and
                <see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/>.
            </param>
            <param name="data">
                A pointer to the location into which the value of the named property is
                written.
            </param>
            <remarks>
                <b>gluGetNurbsProperty</b> retrieves properties stored in a NURBS object.
                These properties affect the way that NURBS curves and surfaces are rendered.
                See the <see cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/> reference page for information about
                what the properties are and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single@)">
            <summary>
                Gets a NURBS property.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="property">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/>, <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/>, <see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/>, and
                <see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/>.
            </param>
            <param name="data">
                A pointer to the location into which the value of the named property is
                written.
            </param>
            <remarks>
                <b>gluGetNurbsProperty</b> retrieves properties stored in a NURBS object.
                These properties affect the way that NURBS curves and surfaces are rendered.
                See the <see cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/> reference page for information about
                what the properties are and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.IntPtr)">
            <summary>
                Gets a NURBS property.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="property">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/>, <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/>, <see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/>, and
                <see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/>.
            </param>
            <param name="data">
                A pointer to the location into which the value of the named property is
                written.
            </param>
            <remarks>
                <b>gluGetNurbsProperty</b> retrieves properties stored in a NURBS object.
                These properties affect the way that NURBS curves and surfaces are rendered.
                See the <see cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/> reference page for information about
                what the properties are and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetString(System.Int32)">
            <summary>
                Gets a string that describes the GLU version number or supported GLU extension
                calls.
            </summary>
            <param name="name">
                Either the version number of GLU (<see cref="F:Tao.OpenGl.Glu.GLU_VERSION"/>) or available
                vendor-specific extension calls (<see cref="F:Tao.OpenGl.Glu.GLU_EXTENSIONS"/>).
            </param>
            <returns>
                Returns a string describing the GLU version or the GLU extensions that are
                supported.
            </returns>
            <remarks>
                <para>
                    <b>gluGetString</b> returns a string describing the GLU version or the GLU
                    extensions that are supported.  When <i>name</i> is
                    <see cref="F:Tao.OpenGl.Glu.GLU_VERSION"/>, the returned string is a value that represents
                    the version number of GLU.  The format of the version number is as follows:
                </para>
                <para>
                    &lt;version number&gt;&lt;space&gt;&lt;vendor-specific information&gt; 
                    (for example, "1.2.11 Microsoft Windows NT")
                </para>
                <para>
                    The version number has the form "major_number.minor_number" or
                    "major_number.minor_number.release_number".  The vendor-specific information
                    is optional, and the format and contents depend on the implementation.
                </para>
                <para>
                    When <i>name</i> is <see cref="F:Tao.OpenGl.Glu.GLU_EXTENSIONS"/>, the returned string
                    contains a list of names of supported GLU extensions that are separated by
                    spaces.  The format of the returned list of names is as follows:
                </para>
                <para>
                    &lt;extension_name&gt;&lt;space&gt;&lt;extension_name&gt;&lt;space&gt; . . .
                    (for example, "GLU_NURBS GL_TESSELATION")
                </para>
                <para>
                    The extension names cannot contain any spaces.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    The <b>gluGetString</b> function is valid for GLU version 1.1 or later.
                </para>
                <para>
                    All strings are NULL-terminated.
                </para>
                <para>
                    <b>gluGetString</b> only returns information about GLU extensions.  Call
                    <see cref="M:Tao.OpenGl.Gl.glGetString(System.Int32)"/> to get a list of GL extensions.
                </para>
                <para>
                    <b>gluGetString</b> is an initialization routine.  Calling it after a
                    <see cref="M:Tao.OpenGl.Gl.glNewList(System.UInt32,System.Int32)"/> results in undefined behavior.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <c>NULL</c> is returned if name is not <see cref="F:Tao.OpenGl.Glu.GLU_VERSION"/> or
                    <see cref="F:Tao.OpenGl.Glu.GLU_EXTENSIONS"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double[])">
            <summary>
                Gets a tessellation object property.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="which">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_RULE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/>,
                and <see cref="F:Tao.OpenGl.Glu.GLU_TESS_TOLERANCE"/>.
            </param>
            <param name="data">
                A pointer to the location where the value of the named property is written.
            </param>
            <remarks>
                <b>gluGetTessProperty</b> retrieves properties stored in a tessellation
                object.  These properties affect the way that tessellation objects are
                interpreted and rendered.  See the <see cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/> reference
                page for information about the properties and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double@)">
            <summary>
                Gets a tessellation object property.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="which">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_RULE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/>,
                and <see cref="F:Tao.OpenGl.Glu.GLU_TESS_TOLERANCE"/>.
            </param>
            <param name="data">
                A pointer to the location where the value of the named property is written.
            </param>
            <remarks>
                <b>gluGetTessProperty</b> retrieves properties stored in a tessellation
                object.  These properties affect the way that tessellation objects are
                interpreted and rendered.  See the <see cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/> reference
                page for information about the properties and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluGetTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.IntPtr)">
            <summary>
                Gets a tessellation object property.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="which">
                The property whose value is to be retrieved.  The following values are valid:
                <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_RULE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/>,
                and <see cref="F:Tao.OpenGl.Glu.GLU_TESS_TOLERANCE"/>.
            </param>
            <param name="data">
                A pointer to the location where the value of the named property is written.
            </param>
            <remarks>
                <b>gluGetTessProperty</b> retrieves properties stored in a tessellation
                object.  These properties affect the way that tessellation objects are
                interpreted and rendered.  See the <see cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/> reference
                page for information about the properties and what they do.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluLoadSamplingMatrices(Tao.OpenGl.Glu.GLUnurbs,System.Single[],System.Single[],System.Int32[])">
            <summary>
                Loads NURBS sampling and culling matrices.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="modelMatrix">
                A modelview matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetFloatv(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="projectionMatrix">
                A projection matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetFloatv(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="viewport">
                A viewport (as from a <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> call).
            </param>
            <remarks>
                <para>
                    <b>gluLoadSamplingMatrices</b> uses <i>modelMatrix</i>,
                    <i>projectionMatrix</i>, and <i>viewport</i> to recompute the sampling and
                    culling matrices stored in <i>nurb</i>.  The sampling matrix determines how
                    finely a NURBS curve or surface must be tessellated to satisfy the sampling
                    tolerance (as determined by the <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>
                    property).  The culling matrix is used in deciding if a NURBS curve or
                    surface should be culled before rendering (when the
                    <see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/> property is turned on).
                </para>
                <para>
                    <b>gluLoadSamplingMatrices</b> is necessary only if the
                    <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/> property is turned off (see
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>).  Although it can be convenient to leave the
                    <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/> property turned on, there can be a
                    performance penalty for doing so.  (A round trip to the GL server is needed
                    to fetch the current values of the modelview matrix, projection matrix, and
                    viewport.)
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetFloatv(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluGetNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluLookAt(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
                Defines a viewing transformation.
            </summary>
            <param name="eyeX">
                The x axis position of the eye point.
            </param>
            <param name="eyeY">
                The y axis position of the eye point.
            </param>
            <param name="eyeZ">
                The z axis position of the eye point.
            </param>
            <param name="centerX">
                The x axis position of the reference point.
            </param>
            <param name="centerY">
                The y axis position of the reference point.
            </param>
            <param name="centerZ">
                The z axis position of the reference point.
            </param>
            <param name="upX">
                The x axis direction of the up vector.
            </param>
            <param name="upY">
                The y axis direction of the up vector.
            </param>
            <param name="upZ">
                The z axis direction of the up vector.
            </param>
            <remarks>
                <para>
                    <b>gluLookAt</b> creates a viewing matrix derived from an eye point, a
                    reference point indicating the center of the scene, and an UP vector.
                </para>
                <para>
                    The matrix maps the reference point to the negative z axis and the eye point
                    to the origin.  When a typical projection matrix is used, the center of the
                    scene therefore maps to the center of the viewport.  Similarly, the direction
                    described by the UP vector projected onto the viewing plane is mapped to the
                    positive y axis so that it points upward in the viewport.  The UP vector must
                    not be parallel to the line of sight from the eye point to the reference
                    point.
                </para>
                <para>
                    The matrix generated by <b>gluLookAt</b> postmultiplies the current matrix.
                </para>
                <para>
                    The matrix M generated by the OpenGL could be computed as follows:
                </para>
                <para>
                    Let E be the 3d column vector (eyeX, eyeY, eyeZ).
                    Let C be the 3d column vector (centerX, centerY, centerZ).
                    Let U be the 3d column vector (upX, upY, upZ).
                    Compute L = C - E.
                    Normalize L.
                    Compute S = L x U.
                    Normalize S.
                    Compute U' = S x L.
                </para>
                <para>
                    M is the matrix whose columns are, in order:
                </para>
                <para>
                    (S, 0), (U', 0), (-L, 0), (-E, 1)  (all column vectors)
                </para>
                <para>
                    Note: This matrix is defined for use in systems where the the modelling
                    coordinate vector is a column vector and is multiplied on the left by the
                    matrices.  If you prefer a row vector which gets multiplied by matrices to
                    its right, then use the transpose of this matrix M.
                </para>
                <para>
                    Note: It is necessary that the UP vector NOT be parallel to the line
                    connecting the center point with the eye point.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glFrustum(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPerspective(System.Double,System.Double,System.Double,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNewNurbsRenderer">
            <summary>
                Creates a NURBS object.
            </summary>
            <returns>
                Returns a pointer to a new NURBS object.
            </returns>
            <remarks>
                <b>gluNewNurbsRenderer</b> creates and returns a pointer to a new NURBS
                object.  This object must be referred to when calling NURBS rendering and
                control functions.  A return value of 0 means that there is not enough memory
                to allocate the object.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluDeleteNurbsRenderer(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNewQuadric">
            <summary>
                Creates a quadrics object.
            </summary>
            <returns>
                Returns a pointer to a new quadrics object.
            </returns>
            <remarks>
                <b>gluNewQuadric</b> creates and returns a pointer to a new quadrics object.
                This object must be referred to when calling quadrics rendering and control
                functions.  A return value of 0 means that there is not enough memory to
                allocate the object.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluCylinder(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluDeleteQuadric(Tao.OpenGl.Glu.GLUquadric)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPartialDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricDrawStyle(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricNormals(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluSphere(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNewTess">
            <summary>
                Creates a tessellation object.
            </summary>
            <returns>
                Returns a pointer to a new tessellation object.
            </returns>
            <remarks>
                <b>gluNewTess</b> creates and returns a pointer to a new tessellation object.
                This object must be referred to when calling tessellation functions.  A
                return value of 0 means that there is not enough memory to allocate the
                object.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluDeleteTess(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNextContour(Tao.OpenGl.Glu.GLUtesselator,System.Int32)">
            <summary>
                Marks the beginning of another contour.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="type">
                <para>
                    The type of the contour being defined.  The following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_EXTERIOR"/></term>
                            <description>
                                An exterior contour defines an exterior boundary of the polygon.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_INTERIOR"/></term>
                            <description>
                                An interior contour defines an interior boundary of the polygon
                                (such as a hole).
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_UNKNOWN"/></term>
                            <description>
                                An unknown contour is analyzed by the library to determine
                                whether it is interior or exterior.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_CCW"/>, <see cref="F:Tao.OpenGl.Glu.GLU_CW"/></term>
                            <description>
                                <para>
                                    The first <see cref="F:Tao.OpenGl.Glu.GLU_CCW"/> or <see cref="F:Tao.OpenGl.Glu.GLU_CW"/>
                                    contour defined is considered to be exterior.  All other
                                    contours are considered to be exterior if they are oriented
                                    in the same direction (clockwise or counterclockwise) as the
                                    first contour, and interior if they are not.
                                </para>
                                <para>
                                    If one contour is of type <see cref="F:Tao.OpenGl.Glu.GLU_CCW"/> or
                                    <see cref="F:Tao.OpenGl.Glu.GLU_CW"/>, then all contours must be of the same
                                    type (if they are not, then all <see cref="F:Tao.OpenGl.Glu.GLU_CCW"/> and
                                    <see cref="F:Tao.OpenGl.Glu.GLU_CW"/> contours will be changed to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_UNKNOWN"/>).  Note that there is no real
                                    difference between the <see cref="F:Tao.OpenGl.Glu.GLU_CCW"/> and
                                    <see cref="F:Tao.OpenGl.Glu.GLU_CW"/> contour types.
                                </para>
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <remarks>
                <para>
                    <b>gluNextContour</b> is used in describing polygons with multiple contours.
                    After the first contour has been described through a series of
                    <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> calls, a <b>gluNextContour</b> call indicates
                    that the previous contour is complete and that the next contour is about to
                    begin.  Another series of <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> calls is then used to
                    describe the new contour.  This process can be repeated until all contours
                    have been described.
                </para>
                <para>
                    Before the first contour is described, <b>gluNextContour</b> can be called to
                    define the type of the first contour.  If <b>gluNextContour</b> is not called
                    before the first contour, then the first contour is marked
                    <see cref="F:Tao.OpenGl.Glu.GLU_EXTERIOR"/>.
                </para>
                <para>
                    This command is obsolete and is provided for backward compatibility only.
                    Calls to <b>gluNextContour</b> are mapped to <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    followed by <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    You can describe a quadrilateral with a triangular hole in it as follows:
                </para>
                <para>
                    <code>
                        Glu.gluBeginPolygon(tess); 
                            Glu.gluTessVertex(tess, v1, v1); 
                            Glu.gluTessVertex(tess, v2, v2); 
                            Glu.gluTessVertex(tess, v3, v3); 
                            Glu.gluTessVertex(tess, v4, v4);  
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR); 
                            Glu.gluTessVertex(tess, v5, v5); 
                            Glu.gluTessVertex(tess, v6, v6); 
                            Glu.gluTessVertex(tess, v7, v7);  
                        Glu.gluEndPolygon(tess); 
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsColorCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsColorDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsEndCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsEndDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsErrorCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsNormalCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsNormalDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsTexCoordCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsTexCoordDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsVertexCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsVertexDataCallback)">
            <summary>
                The <b>gluNurbsCallback</b> mehtod defines a callback for a NURBS object.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="which">
                <para>
                    The callback being defined.  The legal callbacks are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/></term>
                            <description>
                                The begin callback indicates the start of a primitive.  The
                                function takes a single argument of type <see cref="T:System.Int32"/>,
                                which can be one of <see cref="F:Tao.OpenGl.Gl.GL_LINES"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>, or
                                <see cref="F:Tao.OpenGl.Gl.GL_QUAD_STRIP"/>.  The default begin callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_BEGIN"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/></term>
                            <description>
                                The color callback is invoked as the color of a vertex is
                                generated.  The components of the color are stored in the
                                parameter <i>colorData</i>.  This callback is effective only when
                                the user provides a color map (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>
                                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).  <i>colorData</i>
                                contains four components: R,G,B,A.  The default color callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_COLOR"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/></term>
                            <description>
                                The end callback is invoked at the end of a primitive.  The
                                default end callback function is <c>null</c>.  The delegate
                                prototype for this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_END"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/></term>
                            <description>
                                The error function is called when an error is encountered.  Its
                                single argument is of type <see cref="T:System.Int32"/>, and it indicates
                                the specific error that occurred.  There are 37 errors unique to
                                NURBS named <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR1"/> through
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR37"/>.  Character strings describing
                                these errors can be retrieved with <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>.
                                The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/></term>
                            <description>
                                The normal callback is invoked as the vertex normal is generated.
                                The components of the normal are stored in the parameter
                                <i>normalData</i>.  In the case of a NURBS curve, the callback
                                function is effective only when the user provides a normal map
                                (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_NORMAL"/>).  In the case of a NURBS
                                surface, if a normal map (<see cref="F:Tao.OpenGl.Gl.GL_MAP2_NORMAL"/>) is
                                provided, then the generated normal is computed from the normal
                                map.  If a normal map is not provided then a surface normal is
                                computed in a manner similar to that described for evaluators
                                when <see cref="F:Tao.OpenGl.Gl.GL_AUTO_NORMAL"/> is enabled.  The default
                                normal callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL_DATA"/></term>
                            <description>
                                The same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_NORMAL"/> callback except
                                that it takes an additional pointer argument.  This pointer is a
                                copy of the pointer that was specified at the last call to
                                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default callback
                                function is <c>null</c>.  The delegate prototype for this
                                callback is <see cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/></term>
                            <description>
                                The texture callback is invoked as the texture coordinates of a
                                vertex are generated.  These coordinates are stored in the
                                parameter <i>texCoord</i>.  The number of texture coordinates can
                                be 1, 2, 3, or 4 depending on which type of texture map is
                                specified (<see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_TEXTURE_COORD_4"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_1"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_2"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_3"/>,
                                <see cref="F:Tao.OpenGl.Gl.GL_MAP2_TEXTURE_COORD_4"/>).  If no texture map is
                                specified, this callback function will not be called.  The
                                default texture callback function is <c>null</c>.  The delegate
                                prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TEXTURE_COORD"/>
                                callback, except that it takes an additional pointer argument.
                                This pointer is a copy of the pointer that was specified at the
                                last call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/></term>
                            <description>
                                The vertex callback indicates a vertex of the primitive.  The
                                coordinates of the vertex are stored in the parameter
                                <i>vertexData</i>.  All the generated vertices have dimension 3,
                                that is, homogeneous coordinates have been transformed into
                                affine coordinates.  The default vertex callback function is
                                <c>null</c>. The delegate prototype for this callback is
                                <see cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX_DATA"/></term>
                            <description>
                                This is the same as the <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_VERTEX"/> callback,
                                except that it takes an additional pointer argument.  This
                                pointer is a copy of the pointer that was specified at the last
                                call to <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.  The default
                                callback function is <c>null</c>.  The delegate prototype for
                                this callback is <see cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="func">
                The function that the callback invokes.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallback</b> is used to define a callback to be used by a NURBS
                    object.  If the specified callback is already defined, then it is replaced.
                    If <i>func</i> is <c>null</c>, then this callback will not get invoked and
                    the related data, if any, will be lost.
                </para>
                <para>
                    Except the error callback, these callbacks are used by NURBS tessellator
                    (when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>) to return back the OpenGL polygon
                    primitives resulting from the tessellation.  Note that there are two
                    versions of each callback: one with a user data pointer and one without.  If
                    both versions for a particular callback are specified then the callback with
                    the user data pointer will be used.  Note that <i>userData</i> is a copy of
                    the pointer that was specified at the last call to
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>.
                </para>
                <para>
                    The error callback function is effective no matter which value that
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to.  All other callback functions are
                    effective only when <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallback</b> is available only if the GLU version is 1.2 or
                    greater.
                </para>
                <para>
                    GLU version 1.2 supports only the <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> parameter for
                    <i>which</i>.  The <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/> value is deprecated in GLU
                    version 1.3 in favor of <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_ERROR"/>.  All other
                    accepted values for <i>func</i> are available only if the GLU version is 1.3
                    or greater.
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsBeginDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsColorDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsEndDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsErrorCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsNormalDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexCallback"/>
            <seealso cref="T:Tao.OpenGl.Glu.NurbsVertexDataCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Byte[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Double[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Double[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Double[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int16[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int16[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int16[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int32[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int32[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Int32[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Single[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Single[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Single[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.IntPtr)">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackData(Tao.OpenGl.Glu.GLUnurbs,System.Void*)">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsCallbackData</b> is used to pass a pointer to the application's
                    data to NURBS tessellator.  A copy of this pointer will be passed by the
                    tessellator in the NURBS callback functions (set by
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    <b>gluNurbsCallbackData</b> is available only if the GLU version is 1.3 or
                    greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Byte[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Byte[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Byte[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Double[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Double[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Double[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int16[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int16[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int16[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int32[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int32[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Int32[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Single[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Single[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Single[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt16[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.UInt32[0:,0:,0:])">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.IntPtr)">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCallbackDataEXT(Tao.OpenGl.Glu.GLUnurbs,System.Void*)">
            <summary>
                Sets a user data pointer.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="userData">
                A pointer to the user's data.
            </param>
            <remarks>
                <b>gluNurbsCallbackDataEXT</b> is used to pass a pointer to the application's
                data to NURBS tessellator.  A copy of this pointer will be passed by the
                tessellator in the NURBS callback functions (set by
                <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)">
            <summary>
                Defines the shape of a NURBS curve.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="knotCount">
                The number of knots in <i>knot</i>.  The <i>knotCount</i> parameter equals
                the number of control points plus the order.
            </param>
            <param name="knots">
                An array of <i>knotCount</i> nondecreasing knot values.
            </param>
            <param name="stride">
                The offset (as a number of single precision–floating-point values) between
                successive curve control points.
            </param>
            <param name="control">
                A pointer to an array of control points.  The coordinates must agree with
                <i>type</i>.
            </param>
            <param name="order">
                The order of the NURBS curve.  The <i>order</i> parameter equals degree + 1;
                hence a cubic curve has an order of 4.
            </param>
            <param name="type">
                The type of the curve.  If this curve is defined within a
                <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair, then the type
                can be any of the valid one-dimensional evaluator types (such as
                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>).
                Between a <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> pair, the
                only valid types are <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/> and
                <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>. 
            </param>
            <remarks>
                <para>
                    Use <b>gluNurbsCurve</b> to describe a NURBS curve.
                </para>
                <para>
                    When <b>gluNurbsCurve</b> appears between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair, it is used to
                    describe a curve to be rendered.  Positional, texture, and color coordinates
                    are associated by presenting each as a separate <b>gluNurbsCurve</b> between
                    a <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  No more than
                    one call to <b>gluNurbsCurve</b> for each of color, position, and texture
                    data can be made within a single
                    <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  Exactly one
                    call must be made to describe the position of the curve (a type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_4"/>). 
                </para>
                <para>
                    When <b>gluNurbsCurve</b> appears between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> pair, it is used to
                    describe a trimming curve on a NURBS surface.  If <i>type</i> is
                    <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/>, then it describes a curve in two-dimensional
                    (u and v) parameter space.  If it is <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>, then it
                    describes a curve in two-dimensional homogeneous (u, v, and w) parameter
                    space.  See the <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference page for more
                    discussion about trimming curves. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    To define trim curves which stitch well, use <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS curve with normals:
                </para>
                <para>
                    <code>
                        Glu.gluBeginCurve(nobj); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_TEXTURE_COORD_2); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_NORMAL); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_VERTEX_4);  
                        Glu.gluEndCurve(nobj); 
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[0:,0:],System.Int32,System.Int32)">
            <summary>
                Defines the shape of a NURBS curve.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="knotCount">
                The number of knots in <i>knot</i>.  The <i>knotCount</i> parameter equals
                the number of control points plus the order.
            </param>
            <param name="knots">
                An array of <i>knotCount</i> nondecreasing knot values.
            </param>
            <param name="stride">
                The offset (as a number of single precision–floating-point values) between
                successive curve control points.
            </param>
            <param name="control">
                A pointer to an array of control points.  The coordinates must agree with
                <i>type</i>.
            </param>
            <param name="order">
                The order of the NURBS curve.  The <i>order</i> parameter equals degree + 1;
                hence a cubic curve has an order of 4.
            </param>
            <param name="type">
                The type of the curve.  If this curve is defined within a
                <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair, then the type
                can be any of the valid one-dimensional evaluator types (such as
                <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP1_COLOR_4"/>).
                Between a <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> pair, the
                only valid types are <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/> and
                <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>. 
            </param>
            <remarks>
                <para>
                    Use <b>gluNurbsCurve</b> to describe a NURBS curve.
                </para>
                <para>
                    When <b>gluNurbsCurve</b> appears between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair, it is used to
                    describe a curve to be rendered.  Positional, texture, and color coordinates
                    are associated by presenting each as a separate <b>gluNurbsCurve</b> between
                    a <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  No more than
                    one call to <b>gluNurbsCurve</b> for each of color, position, and texture
                    data can be made within a single
                    <see cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  Exactly one
                    call must be made to describe the position of the curve (a type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP1_VERTEX_4"/>). 
                </para>
                <para>
                    When <b>gluNurbsCurve</b> appears between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/> pair, it is used to
                    describe a trimming curve on a NURBS surface.  If <i>type</i> is
                    <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/>, then it describes a curve in two-dimensional
                    (u and v) parameter space.  If it is <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>, then it
                    describes a curve in two-dimensional homogeneous (u, v, and w) parameter
                    space.  See the <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference page for more
                    discussion about trimming curves. 
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    To define trim curves which stitch well, use <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following commands render a textured NURBS curve with normals:
                </para>
                <para>
                    <code>
                        Glu.gluBeginCurve(nobj); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_TEXTURE_COORD_2); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_NORMAL); 
                            Glu.gluNurbsCurve(nobj, ..., Gl.GL_MAP1_VERTEX_4);  
                        Glu.gluEndCurve(nobj); 
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single)">
            <summary>
                Sets a NURBS property.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="property">
                The property to be set.  Valid values are
                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/>, <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/>, <see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/>, or
                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/>.
            </param>
            <param name="val">
                The value of the indicated property.  It may be a numeric value, or one of
                <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_POLYGON"/>, <see cref="F:Tao.OpenGl.Glu.GLU_FILL"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_PATCH"/>, <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/>,
                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER"/>, or <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.
            </param>
            <remarks>
                <para>
                    <b>gluNurbsProperty</b> is used to control properties stored in a NURBS
                    object.  These properties affect the way that a NURBS curve is rendered.  The
                    accepted values for property are as follows:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/></term>
                            <description>
                                <i>val</i> should be set to be either
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER"/> or
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>.  When set to
                                <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER"/>, NURBS objects are tessellated
                                into OpenGL primitives and sent to the pipeline for rendering.
                                When set to <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>, NURBS objects
                                are tessellated into OpenGL primitives but the vertices, normals,
                                colors, and/or textures are retrieved back through a callback
                                interface (see <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>).  This allows the
                                user to cache the tessellated results for further processing.
                                The initial value is <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/></term>
                            <description>
                                <para>
                                    Specifies how a NURBS surface should be tessellated.
                                    <i>val</i> may be one of <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH"/>, or
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR"/>.  When set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/>, the surface is rendered so
                                    that the maximum length, in pixels, of the edges of the
                                    tessellation polygons is no greater than what is specified by
                                    <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>.
                                </para>
                                <para>
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/> specifies that the
                                    surface is rendered in such a way that the value specified by
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/> describes the maximum
                                    distance, in pixels, between the tessellation polygons and
                                    the surfaces they approximate.
                                </para>
                                <para>
                                    <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/> allows users to specify,
                                    in parametric coordinates, how many sample points per unit
                                    length are taken in u, v direction.
                                </para>
                                <para>
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH"/> is similar to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/> except that it is view
                                    independent, that is, the surface is rendered so that the
                                    maximum length, in object space, of edges of the tessellation
                                    polygons is no greater than what is specified by
                                    <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/>.
                                </para>
                                <para>
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR"/> is similar to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/> except that it is view
                                    independent, that is, the surface is rendered in such a way
                                    that the value specified by
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/> describes the maximum
                                    distance, in object space, between the tessellation polygons
                                    and the surfaces they approximate.
                                </para>
                                <para>
                                    The initial value of <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/> is
                                    <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/>.
                                </para>
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_TOLERANCE"/></term>
                            <description>
                                Specifies the maximum length, in pixels or in object space length
                                unit, to use when the sampling method is set to
                                <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/> or
                                <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH"/>.  The NURBS code is
                                conservative when rendering a curve or surface, so the actual
                                length can be somewhat shorter.  The initial value is 50.0
                                pixels.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/></term>
                            <description>
                                Specifies the maximum distance, in pixels or in object space
                                length unit, to use when the sampling method is
                                <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/> or
                                <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR"/>.  The initial value is
                                0.5.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/></term>
                            <description>
                                Specifies the number of sample points per unit length taken along
                                the u axis in parametric coordinates.  It is needed when
                                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/> is set to
                                <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/>.  The initial value is 100.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/></term>
                            <description>
                                Specifies the number of sample points per unit length taken along
                                the v axis in parametric coordinate.  It is needed when
                                <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/> is set to
                                <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/>.  The initial value is 100.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/></term>
                            <description>
                                <para>
                                    <i>val</i> can be set to <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_POLYGON"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_FILL"/>, or <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_PATCH"/>.
                                    When <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_RENDERER"/>, <i>val</i> defines how a
                                    NURBS surface should be rendered.  When <i>val</i> is set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_FILL"/>, the surface is rendered as a set of
                                    polygons.  When <i>val</i> is set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_POLYGON"/>, the NURBS library draws
                                    only the outlines of the polygons created by tessellation.
                                    When <i>val</i> is set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_PATCH"/> just the outlines of patches
                                    and trim curves defined by the user are drawn.
                                </para>
                                <para>
                                    When <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is set to be
                                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_TESSELLATOR"/>, <i>val</i> defines how
                                    a NURBS surface should be tessellated.  When
                                    <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/> is set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_FILL"/> or
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_POLYGON"/>, the NURBS surface is
                                    tessellated into OpenGL triangle primitives which can be
                                    retrieved back through callback functions.  If
                                    <see cref="F:Tao.OpenGl.Glu.GLU_DISPLAY_MODE"/> is set to
                                    <see cref="F:Tao.OpenGl.Glu.GLU_OUTLINE_PATCH"/>, only the outlines of the
                                    patches and trim curves are generated as a sequence of
                                    line strips which can be retrieved back through callback
                                    functions.
                                </para>
                                <para>
                                    The initial value is <see cref="F:Tao.OpenGl.Glu.GLU_FILL"/>.
                                </para>
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_CULLING"/></term>
                            <description>
                                <i>val</i> is a boolean value that, when set to
                                <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, indicates that a NURBS curve should be
                                discarded prior to tessellation if its control points lie outside
                                the current viewport.  The initial value is
                                <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/></term>
                            <description>
                                <para>
                                    <i>val</i> is a boolean value.  When set to
                                    <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, the NURBS code downloads the
                                    projection matrix, the modelview matrix, and the viewport
                                    from the GL server to compute sampling and culling matrices
                                    for each NURBS curve that is rendered.  Sampling and culling
                                    matrices are required to determine the tessellation of a
                                    NURBS surface into line segments or polygons and to cull a
                                    NURBS surface if it lies outside the viewport.
                                </para>
                                <para>
                                    If this mode is set to <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the
                                    program needs to provide a projection matrix, a modelview
                                    matrix, and a viewport for the NURBS renderer to use to
                                    construct sampling and culling matrices.  This can be done
                                    with the <see cref="M:Tao.OpenGl.Glu.gluLoadSamplingMatrices(Tao.OpenGl.Glu.GLUnurbs,System.Single[],System.Single[],System.Int32[])"/> function.
                                    This mode is initially set to <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>.
                                    Changing it from <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> to
                                    <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> does not affect the sampling and
                                    culling matrices until <see cref="M:Tao.OpenGl.Glu.gluLoadSamplingMatrices(Tao.OpenGl.Glu.GLUnurbs,System.Single[],System.Single[],System.Int32[])"/>
                                    is called.
                                </para>
                            </description>
                        </item>
                    </list>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    If <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/> is true, sampling and culling may be
                    executed incorrectly if NURBS routines are compiled into a display list.
                </para>
                <para>
                    A <i>property</i> of <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_TOLERANCE"/>,
                    <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/>, <see cref="F:Tao.OpenGl.Glu.GLU_U_STEP"/>, or
                    <see cref="F:Tao.OpenGl.Glu.GLU_V_STEP"/>, or a <i>val</i> of <see cref="F:Tao.OpenGl.Glu.GLU_PATH_LENGTH"/>,
                    <see cref="F:Tao.OpenGl.Glu.GLU_PARAMETRIC_ERROR"/>, <see cref="F:Tao.OpenGl.Glu.GLU_DOMAIN_DISTANCE"/> are
                    only available if the GLU version is 1.1 or greater.  They are not valid
                    parameters in GLU 1.0.
                </para>
                <para>
                    <see cref="M:Tao.OpenGl.Glu.gluGetString(System.Int32)"/> can be used to determine the GLU version.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_NURBS_MODE"/> is only availble if the GLU version is 1.3 or
                    greater.
                </para>
                <para>
                    The <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PATH_LENGTH"/> and
                    <see cref="F:Tao.OpenGl.Glu.GLU_OBJECT_PARAMETRIC_ERROR"/> values for the
                    <see cref="F:Tao.OpenGl.Glu.GLU_SAMPLING_METHOD"/> property are only available if the GLU
                    version is 1.3 or greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluGetNurbsProperty(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluGetString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluLoadSamplingMatrices(Tao.OpenGl.Glu.GLUnurbs,System.Single[],System.Single[],System.Int32[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[],System.Int32,System.Int32,System.Int32)">
            <summary>
                Defines the shape of a NURBS surface.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="sKnotCount">
                The number of knots in the parametric u direction.
            </param>
            <param name="sKnots">
                An array of <i>sKnotCount</i> nondecreasing knot values in the parametric
                u direction
            </param>
            <param name="tKnotCount">
                The number of knots in the parametric v direction.
            </param>
            <param name="tKnots">
                An array of <i>tKnotCount</i> nondecreasing knot values in the parametric
                v direction.
            </param>
            <param name="sStride">
                The offset (as a number of single precision–floating-point values) between
                successive control points in the parametric u direction in <i>control</i>.
            </param>
            <param name="tStride">
                The offset (in single precision–floating-point values) between successive
                control points in the parametric v direction in <i>control</i>.
            </param>
            <param name="control">
                An array containing control points for the NURBS surface.  The offsets
                between successive control points in the parametric u and v directions are
                given by <i>sStride</i> and <i>tStride</i>.
            </param>
            <param name="sOrder">
                The order of the NURBS surface in the parametric u direction.  The order is
                one more than the degree, hence a surface that is cubic in u has a u order of
                4.
            </param>
            <param name="tOrder">
                The order of the NURBS surface in the parametric v direction.  The order is
                one more than the degree, hence a surface that is cubic in v has a v order of
                4.
            </param>
            <param name="type">
                The type of the surface.  The <i>type</i> parameter can be any of the valid
                two-dimensional evaluator types (such as <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/>
                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).
            </param>
            <remarks>
                <para>
                    Use <b>gluNurbsSurface</b> within a NURBS (Non-Uniform Rational B-Spline)
                    surface definition to describe the shape of a NURBS surface (before any
                    trimming).  To mark the beginning of a NURBS surface definition, use the
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  To mark the end of a NURBS surface
                    definition, use the <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  Call
                    <b>gluNurbsSurface</b> within a NURBS surface definition only.
                </para>
                <para>
                    Positional, texture, and color coordinates are associated with a surface by
                    presenting each as a separate <b>gluNurbsSurface</b> between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  No more
                    than one call to <b>gluNurbsSurface</b> for each of color, position, and
                    texture data can be made within a single
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  Exactly
                    one call must be made to describe the position of the surface (a type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_4"/>).
                </para>
                <para>
                    A NURBS surface can be trimmed by using the commands
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> and <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/> between calls to
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> and <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    Note that a <b>gluNurbsSurface</b> with <i>sKnotCount</i> knots in the u
                    direction and <i>tKnotCount</i> knots in the v direction with orders
                    <i>sOrder</i> and <i>tOrder</i> must have (<i>sKnotCount</i> - <i>sOrder</i>)
                    multiplied by (<i>tKnotCount</i> - <i>tOrder</i>) control points.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    <code>
                        Glu.gluBeginSurface(nobj);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_TEXTURE_COORD_2);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_NORMAL);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_VERTEX_4);
                        Glu.gluEndSurface(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[0:,0:],System.Int32,System.Int32,System.Int32)">
            <summary>
                Defines the shape of a NURBS surface.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="sKnotCount">
                The number of knots in the parametric u direction.
            </param>
            <param name="sKnots">
                An array of <i>sKnotCount</i> nondecreasing knot values in the parametric
                u direction
            </param>
            <param name="tKnotCount">
                The number of knots in the parametric v direction.
            </param>
            <param name="tKnots">
                An array of <i>tKnotCount</i> nondecreasing knot values in the parametric
                v direction.
            </param>
            <param name="sStride">
                The offset (as a number of single precision–floating-point values) between
                successive control points in the parametric u direction in <i>control</i>.
            </param>
            <param name="tStride">
                The offset (in single precision–floating-point values) between successive
                control points in the parametric v direction in <i>control</i>.
            </param>
            <param name="control">
                An array containing control points for the NURBS surface.  The offsets
                between successive control points in the parametric u and v directions are
                given by <i>sStride</i> and <i>tStride</i>.
            </param>
            <param name="sOrder">
                The order of the NURBS surface in the parametric u direction.  The order is
                one more than the degree, hence a surface that is cubic in u has a u order of
                4.
            </param>
            <param name="tOrder">
                The order of the NURBS surface in the parametric v direction.  The order is
                one more than the degree, hence a surface that is cubic in v has a v order of
                4.
            </param>
            <param name="type">
                The type of the surface.  The <i>type</i> parameter can be any of the valid
                two-dimensional evaluator types (such as <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/>
                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).
            </param>
            <remarks>
                <para>
                    Use <b>gluNurbsSurface</b> within a NURBS (Non-Uniform Rational B-Spline)
                    surface definition to describe the shape of a NURBS surface (before any
                    trimming).  To mark the beginning of a NURBS surface definition, use the
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  To mark the end of a NURBS surface
                    definition, use the <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  Call
                    <b>gluNurbsSurface</b> within a NURBS surface definition only.
                </para>
                <para>
                    Positional, texture, and color coordinates are associated with a surface by
                    presenting each as a separate <b>gluNurbsSurface</b> between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  No more
                    than one call to <b>gluNurbsSurface</b> for each of color, position, and
                    texture data can be made within a single
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  Exactly
                    one call must be made to describe the position of the surface (a type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_4"/>).
                </para>
                <para>
                    A NURBS surface can be trimmed by using the commands
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> and <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/> between calls to
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> and <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    Note that a <b>gluNurbsSurface</b> with <i>sKnotCount</i> knots in the u
                    direction and <i>tKnotCount</i> knots in the v direction with orders
                    <i>sOrder</i> and <i>tOrder</i> must have (<i>sKnotCount</i> - <i>sOrder</i>)
                    multiplied by (<i>tKnotCount</i> - <i>tOrder</i>) control points.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    <code>
                        Glu.gluBeginSurface(nobj);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_TEXTURE_COORD_2);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_NORMAL);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_VERTEX_4);
                        Glu.gluEndSurface(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluNurbsSurface(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32,System.Single[0:,0:,0:],System.Int32,System.Int32,System.Int32)">
            <summary>
                Defines the shape of a NURBS surface.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="sKnotCount">
                The number of knots in the parametric u direction.
            </param>
            <param name="sKnots">
                An array of <i>sKnotCount</i> nondecreasing knot values in the parametric
                u direction
            </param>
            <param name="tKnotCount">
                The number of knots in the parametric v direction.
            </param>
            <param name="tKnots">
                An array of <i>tKnotCount</i> nondecreasing knot values in the parametric
                v direction.
            </param>
            <param name="sStride">
                The offset (as a number of single precision–floating-point values) between
                successive control points in the parametric u direction in <i>control</i>.
            </param>
            <param name="tStride">
                The offset (in single precision–floating-point values) between successive
                control points in the parametric v direction in <i>control</i>.
            </param>
            <param name="control">
                An array containing control points for the NURBS surface.  The offsets
                between successive control points in the parametric u and v directions are
                given by <i>sStride</i> and <i>tStride</i>.
            </param>
            <param name="sOrder">
                The order of the NURBS surface in the parametric u direction.  The order is
                one more than the degree, hence a surface that is cubic in u has a u order of
                4.
            </param>
            <param name="tOrder">
                The order of the NURBS surface in the parametric v direction.  The order is
                one more than the degree, hence a surface that is cubic in v has a v order of
                4.
            </param>
            <param name="type">
                The type of the surface.  The <i>type</i> parameter can be any of the valid
                two-dimensional evaluator types (such as <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/>
                or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_COLOR_4"/>).
            </param>
            <remarks>
                <para>
                    Use <b>gluNurbsSurface</b> within a NURBS (Non-Uniform Rational B-Spline)
                    surface definition to describe the shape of a NURBS surface (before any
                    trimming).  To mark the beginning of a NURBS surface definition, use the
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  To mark the end of a NURBS surface
                    definition, use the <see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> command.  Call
                    <b>gluNurbsSurface</b> within a NURBS surface definition only.
                </para>
                <para>
                    Positional, texture, and color coordinates are associated with a surface by
                    presenting each as a separate <b>gluNurbsSurface</b> between a
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  No more
                    than one call to <b>gluNurbsSurface</b> for each of color, position, and
                    texture data can be made within a single
                    <see cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>/<see cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/> pair.  Exactly
                    one call must be made to describe the position of the surface (a type of
                    <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_3"/> or <see cref="F:Tao.OpenGl.Gl.GL_MAP2_VERTEX_4"/>).
                </para>
                <para>
                    A NURBS surface can be trimmed by using the commands
                    <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/> and <see cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/> between calls to
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> and <see cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>.
                </para>
                <para>
                    Note that a <b>gluNurbsSurface</b> with <i>sKnotCount</i> knots in the u
                    direction and <i>tKnotCount</i> knots in the v direction with orders
                    <i>sOrder</i> and <i>tOrder</i> must have (<i>sKnotCount</i> - <i>sOrder</i>)
                    multiplied by (<i>tKnotCount</i> - <i>tOrder</i>) control points.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    <code>
                        Glu.gluBeginSurface(nobj);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_TEXTURE_COORD_2);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_NORMAL);
                            Glu.gluNurbsSurface(nobj, . . ., Gl.GL_MAP2_VERTEX_4);
                        Glu.gluEndSurface(nobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndSurface(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluEndTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluOrtho2D(System.Double,System.Double,System.Double,System.Double)">
            <summary>
                Defines a 2D orthographic projection matrix.
            </summary>
            <param name="left">
                The coordinates for the leftvertical clipping planes.
            </param>
            <param name="right">
                The coordinates for the right vertical clipping planes.
            </param>
            <param name="bottom">
                The coordinates for the bottom horizontal clipping planes.
            </param>
            <param name="top">
                The coordinates for the top horizontal clipping planes.
            </param>
            <remarks>
                The <b>gluOrtho2D</b> function sets up a two-dimensional orthographic viewing
                region.  This is equivalent to calling <see cref="M:Tao.OpenGl.Gl.glOrtho(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)"/> with
                <i>near</i> = –1 and <i>far</i> = 1.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glOrtho(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPerspective(System.Double,System.Double,System.Double,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluPartialDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32,System.Double,System.Double)">
            <summary>
                Draws an arc of a disk.
            </summary>
            <param name="quad">
                A quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="innerRadius">
                The inner radius of the partial disk (can be zero).
            </param>
            <param name="outerRadius">
                The outer radius of the partial disk.
            </param>
            <param name="slices">
                The number of subdivisions around the z-axis.
            </param>
            <param name="loops">
                The number of concentric rings about the origin into which the partial disk
                is subdivided.
            </param>
            <param name="startAngle">
                The starting angle, in degrees, of the disk portion.
            </param>
            <param name="sweepAngle">
                The sweep angle, in degrees, of the disk portion.
            </param>
            <remarks>
                <para>
                    <b>gluPartialDisk</b> renders a partial disk on the z = 0 plane.  A partial
                    disk is similar to a full disk, except that only the subset of the disk from
                    <i>startAngle</i> through <i>startAngle</i> + <i>sweepAngle</i> is included
                    (where 0 degrees is along the +y axis, 90 degrees along the +x axis, 180
                    degrees along the -y axis, and 270 degrees along the -x axis).
                </para>
                <para>
                    The partial disk has a radius of <i>outerRadius</i>, and contains a
                    concentric circular hole with a radius of <i>innerRadius</i>.  If
                    <i>innerRadius</i> is 0, then no hole is generated.  The partial disk is
                    subdivided around the z axis into slices (like pizza slices), and also about
                    the z axis into rings (as specified by <i>slices</i> and <i>loops</i>,
                    respectively).
                </para>
                <para>
                    With respect to orientation, the +z side of the partial disk is considered
                    to be outside (see <see cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>).  This means that if
                    the orientation is set to <see cref="F:Tao.OpenGl.Glu.GLU_OUTSIDE"/>, then any normals
                    generated point along the +z axis.  Otherwise, they point along the -z axis.
                </para>
                <para>
                    If texturing is turned on (with <see cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>), texture
                    coordinates are generated linearly such that where r = <i>outerRadius</i>,
                    the value at (r, 0, 0) is (1.0, 0.5), at (0, r, 0) it is (0.5, 1.0), at
                    (-r, 0, 0) it is (0.0, 0.5), and at (0, -r, 0) it is (0.5, 0.0).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluCylinder(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluSphere(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluPerspective(System.Double,System.Double,System.Double,System.Double)">
            <summary>
                Sets up a perspective projection matrix.
            </summary>
            <param name="fovY">
                The field of view angle, in degrees, in the y-direction.
            </param>
            <param name="aspectRatio">
                The aspect ratio that determines the field of view in the x-direction.  The
                aspect ratio is the ratio of x (width) to y (height).
            </param>
            <param name="zNear">
                The distance from the viewer to the near clipping plane (always positive).
            </param>
            <param name="zFar">
                The distance from the viewer to the far clipping plane (always positive).
            </param>
            <remarks>
                <para>
                    The <b>gluPerspective</b> subroutine specifies a viewing frustum into the
                    world coordinate system.  Generally, the aspect ratio used with this
                    subroutine should match that of its associated viewport.  For example, an
                    aspect ratio value of aspect = 2.0 means the viewer's angle of view is twice
                    as wide in x as it is in y.  If the viewport is twice as wide as it is tall,
                    it displays the image without distortion.
                </para>
                <para>
                    The matrix generated by <b>gluPerspective</b> is multipled by the current
                    matrix, just as if Gl.glMultMatrix* were called with the generated matrix.
                    To load the perspective matrix onto the current matrix stack instead,
                    precede the call to <b>gluPerspective</b> with a call to
                    <see cref="M:Tao.OpenGl.Gl.glLoadIdentity"/>.
                </para>
                <para>
                    Given f defined as follows:
                </para>
                <para>
                    <c>f = cotangent(fovY / 2)</c>
                </para>
                <para>
                    The generated matrix is:
                </para>
                <para>
                    <code>
                        (     f                                       )
                        |  ------        0       0            0       |
                        |  aspectRatio                                |
                        |                                             |
                        |                                             |
                        |     0          f       0            0       |
                        |                                             |
                        |                                             |
                        |                    zFar+zNear  2*zFar*zNear |
                        |     0          0   ----------  ------------ |
                        |                    zNear-zFar   zNear-zFar  |
                        |                                             |
                        |                                             |
                        |     0          0      -1            0       |
                        (                                             )
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Depth buffer precision is affected by the values specified for <i>zNear</i>
                    and <i>zFar</i>.  The greater the ratio of <i>zFar</i> to <i>zNear</i> is,
                    the less effective the depth buffer will be at distinguishing between
                    surfaces that are near each other.  If <c>r = zFar / zNear</c> roughly
                    <c>log2(r)</c> bits of depth buffer precision are lost.  Because r approaches
                    infinity as <i>zNear</i> approaches 0, <i>zNear</i> must never be set to 0.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glFrustum(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glLoadIdentity"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluOrtho2D(System.Double,System.Double,System.Double,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluPickMatrix(System.Double,System.Double,System.Double,System.Double,System.Int32[])">
            <summary>
                Defines a picking region.
            </summary>
            <param name="x">
                The center of a picking region in x axis window coordinates.
            </param>
            <param name="y">
                The center of a picking region in y axis window coordinates.
            </param>
            <param name="width">
                The width of the picking region in window coordinates.
            </param>
            <param name="height">
                The height of the picking region in window coordinates.
            </param>
            <param name="viewport">
                The current viewport (as from a <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> call).
            </param>
            <remarks>
                <para>
                    <b>gluPickMatrix</b> creates a projection matrix that can be used to restrict
                    drawing to a small region of the viewport.  This is typically useful to
                    determine what objects are being drawn near the cursor.  Use
                    <b>gluPickMatrix</b> to restrict drawing to a small region around the cursor.
                    Then, enter selection mode (with <see cref="M:Tao.OpenGl.Gl.glRenderMode(System.Int32)"/>) and rerender
                    the scene.  All primitives that would have been drawn near the cursor are
                    identified and stored in the selection buffer.
                </para>
                <para>
                    The matrix created by <b>gluPickMatrix</b> is multiplied by the current
                    matrix just as if Gl.glMultMatrix* is called with the generated matrix.
                    To effectively use the generated pick matrix for picking, first call
                    <see cref="M:Tao.OpenGl.Gl.glLoadIdentity"/> to load an identity matrix onto the
                    perspective matrix stack.  Then call <b>gluPickMatrix</b>, and finally, call
                    a command (such as <see cref="M:Tao.OpenGl.Glu.gluPerspective(System.Double,System.Double,System.Double,System.Double)"/>) to multiply the perspective
                    matrix by the pick matrix.
                </para>
                <para>
                    When using <b>gluPickMatrix</b> to pick NURBS, be careful to turn off the
                    NURBS property <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/>.  If
                    <see cref="F:Tao.OpenGl.Glu.GLU_AUTO_LOAD_MATRIX"/> is not turned off, then any NURBS
                    surface rendered is subdivided differently with the pick matrix than the way
                    it was subdivided without the pick matrix.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    When rendering a scene as follows:
                </para>
                <para>
                    <code>
                        Gl.glMatrixMode(Gl.GL_PROJECTION);
                        Gl.glLoadIdentity();
                        Glu.gluPerspective(. . .);
                        Gl.glMatrixMode(Gl.GL_MODELVIEW);
                        // Draw the scene
                    </code>
                </para>
                <para>
                    The following code selects a portion of the viewport:
                </para>
                <para>
                    <code>
                        Gl.glMatrixMode(Gl.GL_PROJECTION);
                        Gl.glLoadIdentity();
                        Glu.gluPickMatrix(x, y, width, height, viewport);
                        Glu.gluPerspective(. . .);
                        Gl.glMatrixMode(Gl.GL_MODELVIEW);
                        // Draw the scene
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glLoadIdentity"/>
            <seealso cref="M:Tao.OpenGl.Gl.glRenderMode(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPerspective(System.Double,System.Double,System.Double,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)">
            <summary>
                Maps object coordinates to window coordinates.
            </summary>
            <param name="objX">
                The object's x axis coordinate.
            </param>
            <param name="objY">
                The object's y axis coordinate.
            </param>
            <param name="objZ">
                The object's z axis coordinate.
            </param>
            <param name="modelMatrix">
                The current modelview matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="projectionMatrix">
                The current projection matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/>
                call).
            </param>
            <param name="viewport">
                The current viewport (as from a <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="winX">
                The computed window's x axis coordinate.
            </param>
            <param name="winY">
                The computed window's y axis coordinate.
            </param>
            <param name="winZ">
                The computed window's z axis coordinate.
            </param>
            <returns>
                Returns <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> indicates success, a return value of
                <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates failure.
            </returns>
            <remarks>
                <para>
                    <b>gluProject</b> transforms the specified object coordinates into window
                    coordinates using <i>modelMatrix</i>, <i>projectionMatrix</i>, and
                    <i>viewport</i>.  The result is stored in <i>winX</i>, <i>winY</i>, and
                    <i>winZ</i>.  A return value of <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> indicates success,
                    a return value of <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates failure.
                </para>
                <para>
                    To compute the coordinates, let <c>v = (objX, objY, objZ, 1.0)</c>
                    represented as a matrix with 4 rows and 1 column.  Then <b>gluProject</b>
                    computes v' as follows:
                </para>
                <para>
                    <c>v' = P x M x v</c>
                </para>
                <para>
                    Where P is the current projection matrix <i>projectionMatrix</i>, M is the
                    current modelview matrix <i>modelMatrix</i> (both represented as 4x4 matrices
                    in column-major order) and 'x' represents matrix multiplication.
                </para>
                <para>
                    The window coordinates are then computed as follows:
                </para>
                <para>
                    <code>
                        winX = view(0) + view(2) * (v'(0) + 1) / 2
                        winY = view(1) + view(3) * (v'(1) + 1) / 2
                        winZ = (v'(2) + 1) / 2
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluUnProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Int32)">
            <summary>
                Describes a piecewise linear NURBS trimming curve.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="count">
                The number of points on the curve.
            </param>
            <param name="data">
                An array containing the curve points.
            </param>
            <param name="stride">
                The offset (a number of single precision–floating-point values) between
                points on the curve.
            </param>
            <param name="type">
                The type of curve.  Must be either <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/> or
                <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>.
            </param>
            <remarks>
                <para>
                    <b>gluPwlCurve</b> describes a piecewise linear trimming curve for a NURBS
                    surface.  A piecewise linear curve consists of a list of coordinates of
                    points in the parameter space for the NURBS surface to be trimmed.  These
                    points are connected with line segments to form a curve.  If the curve is an
                    approximation to a curve that is not piecewise linear, the points should be
                    close enough in parameter space that the resulting path appears curved at the
                    resolution used in the application.
                </para>
                <para>
                    If type is <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/>, then it describes a curve in
                    two-dimensional (u and v) parameter space.  If it is
                    <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>, then it describes a curve in two-dimensional
                    homogeneous (u, v, and w) parameter space.  See the
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference page for more information about
                    trimming curves.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    To describe a trim curve that closely follows the contours of a NURBS
                    surface, call <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluPwlCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[0:,0:],System.Int32,System.Int32)">
            <summary>
                Describes a piecewise linear NURBS trimming curve.
            </summary>
            <param name="nurb">
                The NURBS object (created with <see cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>).
            </param>
            <param name="count">
                The number of points on the curve.
            </param>
            <param name="data">
                An array containing the curve points.
            </param>
            <param name="stride">
                The offset (a number of single precision–floating-point values) between
                points on the curve.
            </param>
            <param name="type">
                The type of curve.  Must be either <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/> or
                <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>.
            </param>
            <remarks>
                <para>
                    <b>gluPwlCurve</b> describes a piecewise linear trimming curve for a NURBS
                    surface.  A piecewise linear curve consists of a list of coordinates of
                    points in the parameter space for the NURBS surface to be trimmed.  These
                    points are connected with line segments to form a curve.  If the curve is an
                    approximation to a curve that is not piecewise linear, the points should be
                    close enough in parameter space that the resulting path appears curved at the
                    resolution used in the application.
                </para>
                <para>
                    If type is <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_2"/>, then it describes a curve in
                    two-dimensional (u and v) parameter space.  If it is
                    <see cref="F:Tao.OpenGl.Glu.GLU_MAP1_TRIM_3"/>, then it describes a curve in two-dimensional
                    homogeneous (u, v, and w) parameter space.  See the
                    <see cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/> reference page for more information about
                    trimming curves.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    To describe a trim curve that closely follows the contours of a NURBS
                    surface, call <see cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginCurve(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBeginTrim(Tao.OpenGl.Glu.GLUnurbs)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewNurbsRenderer"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCurve(Tao.OpenGl.Glu.GLUnurbs,System.Int32,System.Single[],System.Int32,System.Single[],System.Int32,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)">
            <summary>
                Defines a callback for a quadric object.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="which">
                The callback being defined.  The only valid value is
                <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/>.
            </param>
            <param name="func">
                The function to be called.
            </param>
            <remarks>
                <para>
                    <b>gluQuadricCallback</b> is used to define a new callback to be used by a
                    quadrics object.  If the specified callback is already defined, then it is
                    replaced.  If <i>func</i> is <c>null</c>, then any existing callback is
                    erased.
                </para>
                <para>
                    The one legal callback is <see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/>:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_ERROR"/></term>
                            <description>
                                The function is called when an error is encountered.  Its single
                                argument is of type <see cref="T:System.Int32"/>, and it indicates the
                                specific error that occurred.  Character strings describing these
                                errors can be retrieved with the <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
                                call.
                            </description>
                        </item>
                    </list>
                </para>
            </remarks>
            <seealso cref="T:Tao.OpenGl.Glu.QuadricErrorCallback"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluQuadricDrawStyle(Tao.OpenGl.Glu.GLUquadric,System.Int32)">
            <summary>
                Specifies the draw style desired for quadrics.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="drawStyle">
                <para>
                    The desired draw style.  The following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_FILL"/></term>
                            <description>
                                Quadrics are rendered with polygon primitives.  The polygons are
                                drawn in a counterclockwise fashion with respect to their normals
                                (as defined with <see cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>).
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_LINE"/></term>
                            <description>
                                Quadrics are rendered as a set of lines.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_SILHOUETTE"/></term>
                            <description>
                                Quadrics are rendered as a set of lines, except that edges
                                separating coplanar faces will not be drawn.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_POINT"/></term>
                            <description>
                                Quadrics are rendered as a set of points.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <remarks>
                <b>gluQuadricDrawStyle</b> specifies the draw style for quadrics rendered
                with <i>quad</i>.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricNormals(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluQuadricNormals(Tao.OpenGl.Glu.GLUquadric,System.Int32)">
            <summary>
                Specifies what kind of normals are to be used for quadrics.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="normal">
                <para>
                    The desired type of normals.  The following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_NONE"/></term>
                            <description>
                                No normals are generated.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_FLAT"/></term>
                            <description>
                                One normal is generated for every facet of a quadric.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_SMOOTH"/></term>
                            <description>
                                One normal is generated for every vertex of a quadric.  This is
                                the default value.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <remarks>
                <b>gluQuadricNormals</b> specifies what kind of normals are desired for
                quadrics rendered with <i>quad</i>.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricDrawStyle(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)">
            <summary>
                Specifies inside or outside orientation for quadrics.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="orientation">
                <para>
                    The desired orientation.  The following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_OUTSIDE"/></term>
                            <description>
                                Draw quadrics with normals pointing outward.  This is the default
                                value.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_INSIDE"/></term>
                            <description>
                                Draw quadrics with normals pointing inward.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <remarks>
                <para>
                    <b>gluQuadricOrientation</b> specifies what kind of orientation is desired
                    for quadrics rendered with <i>quad</i>.
                </para>
                <para>
                    The interpretation of outward and inward depends on the quadric being drawn.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricDrawStyle(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricNormals(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)">
            <summary>
                Specifies whether quadrics are to be textured.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="texture">
                <para>
                    A flag indicating whether texture coordinates are to be generated.  The
                    following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Gl.GL_TRUE"/></term>
                            <description>
                                Generate texture coordinates.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Gl.GL_FALSE"/></term>
                            <description>
                                Do not generate texture coordinates.  This is the default value.
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <remarks>
                <para>
                    <b>gluQuadricTexture</b> specifies if texture coordinates should be generated
                    for quadrics rendered with <i>quad</i>.
                </para>
                <para>
                    The manner in which texture coordinates are generated depends upon the
                    specific quadric rendered.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricDrawStyle(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricNormals(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluScaleImage(System.Int32,System.Int32,System.Int32,System.Int32,System.IntPtr,System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
                Scales an image to an arbitrary size.
            </summary>
            <param name="format">
                The format of the pixel data.  The following symbolic values are valid:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_STENCIL_INDEX"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>, <see cref="F:Tao.OpenGl.Gl.GL_RED"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>, <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGR_EXT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGRA_EXT"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, and
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="widthIn">
                The width of the source image that is scaled.
            </param>
            <param name="heightIn">
                The height of the source image that is scaled.
            </param>
            <param name="typeIn">
                The data type for <i>dataIn</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="dataIn">
                A pointer to the source image.
            </param>
            <param name="widthOut">
                The width of the destination image.
            </param>
            <param name="heightOut">
                The height of the destination image.
            </param>
            <param name="typeOut">
                The data type for <i>dataOut</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="dataOut">
                A pointer to the destination image.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluScaleImage</b> scales a pixel image using the appropriate pixel store
                    modes to unpack data from the source image and pack data into the
                    destination image.
                </para>
                <para>
                    When shrinking an image, <b>gluScaleImage</b> uses a box filter to sample the
                    source image and create pixels for the destination image.  When magnifying an
                    image, the pixels from the source image are linearly interpolated to create
                    the destination image.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glReadPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>format</i>, <i>typeIn</i>, and
                    <i>typeOut</i> parameters.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>widthIn</i>,
                    <i>heightIn</i>, <i>widthOut</i>, or <i>heightOut</i> is negative.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i>, <i>typeIn</i>,
                    or <i>typeOut</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glReadPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluScaleImage(System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32,System.Int32,System.Byte[])">
            <summary>
                Scales an image to an arbitrary size.
            </summary>
            <param name="format">
                The format of the pixel data.  The following symbolic values are valid:
                <see cref="F:Tao.OpenGl.Gl.GL_COLOR_INDEX"/>, <see cref="F:Tao.OpenGl.Gl.GL_STENCIL_INDEX"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_DEPTH_COMPONENT"/>, <see cref="F:Tao.OpenGl.Gl.GL_RED"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_GREEN"/>, <see cref="F:Tao.OpenGl.Gl.GL_BLUE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_ALPHA"/>, <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/>, <see cref="F:Tao.OpenGl.Gl.GL_BGR_EXT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BGRA_EXT"/>, <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE"/>, and
                <see cref="F:Tao.OpenGl.Gl.GL_LUMINANCE_ALPHA"/>.
            </param>
            <param name="widthIn">
                The width of the source image that is scaled.
            </param>
            <param name="heightIn">
                The height of the source image that is scaled.
            </param>
            <param name="typeIn">
                The data type for <i>dataIn</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="dataIn">
                A pointer to the source image.
            </param>
            <param name="widthOut">
                The width of the destination image.
            </param>
            <param name="heightOut">
                The height of the destination image.
            </param>
            <param name="typeOut">
                The data type for <i>dataOut</i>.  Must be one of
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE"/>, <see cref="F:Tao.OpenGl.Gl.GL_BYTE"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_BITMAP"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_SHORT"/>, <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_INT"/>, <see cref="F:Tao.OpenGl.Gl.GL_FLOAT"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, or
                <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/>.
            </param>
            <param name="dataOut">
                A pointer to the destination image.
            </param>
            <returns>
                A return value of zero indicates success, otherwise a GLU error code is
                returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
            </returns>
            <remarks>
                <para>
                    <b>gluScaleImage</b> scales a pixel image using the appropriate pixel store
                    modes to unpack data from the source image and pack data into the
                    destination image.
                </para>
                <para>
                    When shrinking an image, <b>gluScaleImage</b> uses a box filter to sample the
                    source image and create pixels for the destination image.  When magnifying an
                    image, the pixels from the source image are linearly interpolated to create
                    the destination image.
                </para>
                <para>
                    A return value of zero indicates success, otherwise a GLU error code is
                    returned (see <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>).
                </para>
                <para>
                    See the <see cref="M:Tao.OpenGl.Gl.glReadPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/> reference page for a description of
                    the acceptable values for the <i>format</i>, <i>typeIn</i>, and
                    <i>typeOut</i> parameters.
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    Formats <see cref="F:Tao.OpenGl.Gl.GL_BGR"/>, and <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>, and types
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/>,
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/>, and
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> are only available if the GL
                    version is 1.2 or greater.
                </para>
                <para>
                    <b>ERRORS</b>
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_VALUE"/> is returned if <i>widthIn</i>,
                    <i>heightIn</i>, <i>widthOut</i>, or <i>heightOut</i> is negative.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_ENUM"/> is returned if <i>format</i>, <i>typeIn</i>,
                    or <i>typeOut</i> is not legal.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_3_3_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_BYTE_2_3_3_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_6_5_REV"/> and <i>format</i> is not
                    <see cref="F:Tao.OpenGl.Gl.GL_RGB"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_4_4_4_4_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_5_5_5_1"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_SHORT_1_5_5_5_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_8_8_8_8_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
                <para>
                    <see cref="F:Tao.OpenGl.Glu.GLU_INVALID_OPERATION"/> is returned if <i>typeIn</i> or
                    <i>typeOut</i> is <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_10_10_10_2"/> or
                    <see cref="F:Tao.OpenGl.Gl.GL_UNSIGNED_INT_2_10_10_10_REV"/> and <i>format</i> is neither
                    <see cref="F:Tao.OpenGl.Gl.GL_RGBA"/> nor <see cref="F:Tao.OpenGl.Gl.GL_BGRA"/>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glDrawPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glReadPixels(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Object)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild1DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild2DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluBuild3DMipmaps(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluSphere(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Int32,System.Int32)">
            <summary>
                Draws a sphere.
            </summary>
            <param name="quad">
                The quadric object (created with <see cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>).
            </param>
            <param name="radius">
                The radius of the sphere.
            </param>
            <param name="slices">
                The number of subdivisions around the z-axis (similar to lines of longitude.
            </param>
            <param name="stacks">
                The number of subdivisions along the z-axis (similar to lines of latitude).
            </param>
            <remarks>
                <para>
                    <b>gluSphere</b> draws a sphere of the given radius centered around the
                    origin.  The sphere is subdivided around the z axis into slices and along the
                    z axis into stacks (similar to lines of longitude and latitude).
                </para>
                <para>
                    If the orientation is set to <see cref="F:Tao.OpenGl.Glu.GLU_OUTSIDE"/> (with
                    <see cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>), then any normals generated point away
                    from the center of the sphere.  Otherwise, they point toward the center of
                    the sphere.
                </para>
                <para>
                    If texturing is turned on (with <see cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>), then
                    texture coordinates are generated so that t ranges from 0.0 at z = -radius
                    to 1.0 at z = radius (t increases linearly along longitudinal lines), and
                    s ranges from 0.0 at the +y axis, to 0.25 at the +x axis, to 0.5 at the -y
                    axis, to 0.75 at the -x axis, and back to 1.0 at the +y axis.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluCylinder(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewQuadric"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluPartialDisk(Tao.OpenGl.Glu.GLUquadric,System.Double,System.Double,System.Int32,System.Int32,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricOrientation(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricTexture(Tao.OpenGl.Glu.GLUquadric,System.Int32)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Delimits a contour description.
            </summary>
            <param name="tess">
                    The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <b>gluTessBeginContour</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                definition of a polygon contour.  Within each
                <b>gluTessBeginContour</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there can
                be zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.  The vertices specify
                a closed contour (the last vertex of each contour is automatically linked to
                the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> reference page for more
                details.  <b>gluTessBeginContour</b> can only be called between
                <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Double[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Double[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Double[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int16[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int16[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int16[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int32[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int32[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Int32[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Single[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Single[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Single[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt16[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt16[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt16[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt32[])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt32[0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.UInt32[0:,0:,0:])">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.IntPtr)">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Void*)">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="data">
                A pointer to a programmer defined–polygon data structure.
            </param>
            <remarks>
                <para>
                    <b>gluTessBeginPolygon</b> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <b>gluTessBeginPolygon</b>/<see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    <i>data</i> is a pointer to a user-defined data structure.  If the
                    appropriate callback(s) are specified (see <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>),
                    then this pointer is returned to the callback function(s).  Thus, it is a
                    convenient way to store per-polygon information.
                </para>
                <para>
                    Once <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineCallback1)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessCombineDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEdgeFlagCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEdgeFlagDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEndCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessEndDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessErrorCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessErrorDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexCallback1)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessVertexDataCallback)">
             <summary>
                 Defines a callback for a tessellation object.
             </summary>
             <param name="tess">
                 The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
             </param>
             <param name="which">
                 <para>
                     The callback being defined.  The following values are valid:
                 </para>
                 <para>
                     <list type="table">
                         <listheader>
                             <term>Value</term>
                             <description>Description</description>
                         </listheader>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/></term>
                             <description>
                                 The begin callback is invoked like <see cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/> to
                                 indicate the start of a (triangle) primitive.  The function takes
                                 a single argument of type <see cref="T:System.Int32"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then the argument is set to either
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/>,
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/>, or
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLES"/>.  If the
                                 <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/> property is set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then the argument will be set to
                                 <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/>.  The delegate prototype for this
                                 callback is <see cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/></term>
                             <description>
                                 <para>
                                     The combine callback is called to create a new vertex when
                                     the tessellation detects an intersection, or wishes to merge
                                     features.  The function takes four arguments: an array of
                                     three elements each of type <see cref="T:System.Double"/>, an
                                     array of four pointers, an array of four elements each of
                                     type <see cref="T:System.Single"/>, and a pointer to a pointer.  The
                                     delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>.
                                 </para>
                                 <para>
                                     The vertex is defined as a linear combination of up to four
                                     existing vertices, stored in <i>vertexData</i>.  The
                                     coefficients of the linear combination are given by
                                     <i>weight</i>; these weights always add up to 1.  All
                                     vertex pointers are valid even when some of the weights are
                                     0.  <i>coordinates</i> gives the location of the new vertex.
                                 </para>
                                 <para>
                                     The user must allocate another vertex, interpolate parameters
                                     using <i>vertexData</i> and <i>weight</i>, and return the new
                                     vertex pointer in <i>outData</i>.  This handle is supplied
                                     during rendering callbacks.  The user is responsible for
                                     freeing the memory some time after
                                     <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/> is called.
                                 </para>
                                 <para>
                                     For example, if the polygon lies in an arbitrary plane in
                                     3-space, and a color is associated with each vertex, the
                                     <b>GLU_TESS_COMBINE</b> callback might look like this:
                                 </para>
                                 <para>
                                     <code>
                                         void myCombine(GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut) { 
                                             VERTEX *newVertex = new_vertex(); 
                                             newVertex-&gt;x = coords[0]; 
                                             newVertex-&gt;y = coords[1]; 
                                             newVertex-&gt;z = coords[2]; 
                                             newVertex-&gt;r = w[0]*d[0]-&gt;r + w[1]*d[1]-&gt;r + w[2]*d[2]-&gt;r + 
                                             w[3]*d[3]-&gt;r; 
                                             newVertex-&gt;g = w[0]*d[0]-&gt;g + w[1]*d[1]-&gt;g + w[2]*d[2]-&gt;g + 
                                             w[3]*d[3]-&gt;g; 
                                             newVertex-&gt;b = w[0]*d[0]-&gt;b + w[1]*d[1]-&gt;b + w[2]*d[2]-&gt;b + 
                                             w[3]*d[3]-&gt;b; 
                                             newVertex-&gt;a = w[0]*d[0]-&gt;a + w[1]*d[1]-&gt;a + w[2]*d[2]-&gt;a + 
                                             w[3]*d[3]-&gt;a; 
                                             *dataOut = newVertex; 
                                         } 
                                     </code>
                                 </para>
                                 <para>
                                     If the tessellation detects an intersection, then the
                                     <b>GLU_TESS_COMBINE</b> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback (see below)
                                     must be defined, and it must write a non-NULL pointer into
                                     <i>outData</i>.  Otherwise the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error occurs,
                                     and no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/></term>
                             <description>
                                 <para>
                                     The edge flag callback is similar to
                                     <see cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>.  The function takes a single
                                     boolean flag that indicates which edges lie on the polygon
                                     boundary.  If the flag is <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, then
                                     each vertex that follows begins an edge that lies on the
                                     polygon boundary, that is, an edge that separates an interior
                                     region from an exterior one.  If the flag is
                                     <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>, then each vertex that follows
                                     begins an edge that lies in the polygon interior.  The edge
                                     flag callback (if defined) is invoked before the first
                                     vertex callback.
                                 </para>
                                 <para>
                                     Since triangle fans and triangle strips do not support edge
                                     flags, the begin callback is not called with
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_FAN"/> or
                                     <see cref="F:Tao.OpenGl.Gl.GL_TRIANGLE_STRIP"/> if a non-NULL edge flag
                                     callback is provided.  (If the callback is initialized to
                                     <c>null</c>, there is no impact on performance).  Instead,
                                     the fans and strips are converted to independent triangles.
                                     The delegate prototype for this callback is
                                     <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_EDGE_FLAG"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/></term>
                             <description>
                                 The end callback serves the same purpose as
                                 <see cref="M:Tao.OpenGl.Gl.glEnd"/>.  It indicates the end of a primitive and
                                 it takes no arguments.  The delegate prototype for this callback
                                 is <see cref="T:Tao.OpenGl.Glu.TessEndCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_END_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_END"/> callback except that
                                 it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/></term>
                             <description>
                                 <para>
                                     The error callback is called when an error is encountered.
                                     The one argument is of type <see cref="T:System.Int32"/>; it
                                     indicates the specific error that occurred and will be set to
                                     one of <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_POLYGON"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_BEGIN_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MISSING_END_CONTOUR"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/>,
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/>.  Character strings
                                     describing these errors can be retrieved with the
                                     <see cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/> call.  The delegate prototype
                                     for this callback is <see cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>.
                                 </para>
                                 <para>
                                     The GLU library will recover from the first four errors by
                                     inserting the missing call(s).
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COORD_TOO_LARGE"/> indicates that some
                                     vertex coordinate exceeded the predefined constant
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_MAX_COORD"/> in absolute value, and that
                                     the value has been clamped.  (Coordinate values must be small
                                     enough so that two can be multiplied together without
                                     overflow.)  <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/>
                                     indicates that the tessellation detected an intersection
                                     between two edges in the input data, and the
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE"/> or
                                     <see cref="F:Tao.OpenGl.Glu.GLU_TESS_COMBINE_DATA"/> callback was not
                                     provided.  No output is generated.
                                     <see cref="F:Tao.OpenGl.Glu.GLU_OUT_OF_MEMORY"/> indicates that there is not
                                     enough memory so no output is generated.
                                 </para>
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_ERROR"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/></term>
                             <description>
                                 The vertex callback is invoked between the begin and end
                                 callbacks.  It is similar to Gl.glVertex*, and it defines the
                                 vertices of the triangles created by the tessellation process.
                                 The function takes a pointer as its only argument.  This pointer
                                 is identical to the opaque pointer provided by the user when the
                                 vertex was described (see <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>).  The
                                 delegate prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>.
                             </description>
                         </item>
                         <item>
                             <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/></term>
                             <description>
                                 The same as the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/> callback except
                                 that it takes an additional pointer argument.  This pointer is
                                 identical to the opaque pointer provided when
                                 <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was called.  The delegate
                                 prototype for this callback is
                                 <see cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>.
                             </description>
                         </item>
                     </list>
                 </para>
             </param>
             <param name="func">
                 The function to be called.
             </param>
             <remarks>
                 <para>
                     <b>gluTessCallback</b> is used to indicate a callback to be used by a
                     tessellation object.  If the specified callback is already defined, then it
                     is replaced.  If <i>func</i> is <c>null</c>, then the existing callback
                     becomes undefined.
                 </para>
                 <para>
                     These callbacks are used by the tessellation object to describe how a polygon
                     specified by the user is broken into triangles.  Note that there are two
                     versions of each callback: one with user-specified polygon data and one
                     without.  If both versions of a particular callback are specified, then the
                     callback with user-specified polygon data will be used.  Note that the
                     <i>polygonData</i> parameter used by some of the functions is a copy of the
                     pointer that was specified when <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> was
                     called.
                 </para>
                 <para>
                     <b>EXAMPLE</b>
                 </para>
                 <para>
                     You can directly render tessallated polygons as follows:
                 </para>
                 <para>
                     <code>
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_BEGIN, new Glu.TessBeginCallback(Gl.glBegin));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_VERTEX, new Glu.TessVertexCallback(Gl.glVertex3dv));
                         Glu.gluTessCallback(tess, Glu.GLU_TESS_END, new Glu.TessEndCallback(Gl.glEnd));
            
                         Glu.gluTessBeginPolygon(tess, null);
                             Glu.gluTessBeginContour(tess);
                                 Glu.gluTessVertex(tess, v, v);
                                 . . .
                             Glu.gluTessEndContour(tess);
                         Glu.gluTessEndPolygon(tess);
                     </code>
                 </para>
             </remarks>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessBeginDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessCombineDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessEndDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessErrorDataCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexCallback"/>
             <seealso cref="T:Tao.OpenGl.Glu.TessVertexDataCallback"/>
             <seealso cref="M:Tao.OpenGl.Gl.glBegin(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Gl.glEdgeFlag(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluErrorString(System.Int32)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
             <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Delimits a contour description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <b>gluTessEndContour</b> delimit the
                definition of a polygon contour.  Within each
                <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<b>gluTessEndContour</b> pair, there can
                be zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.  The vertices specify
                a closed contour (the last vertex of each contour is automatically linked to
                the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/> reference page for more
                details.  <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> can only be called between
                <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)">
            <summary>
                Delimits a polygon description.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <remarks>
                <para>
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/> and <b>gluTessEndPolygon</b> delimit the
                    definition of a convex, concave or self-intersecting polygon.  Within each
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>/<b>gluTessEndPolygon</b> pair, there must
                    be one or more calls to
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>/<see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.  Within
                    each contour, there are zero or more calls to <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>.
                    The vertices specify a closed contour (the last vertex of each contour is
                    automatically linked to the first).  See the <see cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>,
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>, and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>
                    reference pages for more details.
                </para>
                <para>
                    Once <b>gluTessEndPolygon</b> is called, the polygon is tessellated,
                    and the resulting triangles are described through callbacks.  See
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> for descriptions of the callback functions.
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tobj, null);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v1, v1);
                                Glu.gluTessVertex(tobj, v2, v2);
                                Glu.gluTessVertex(tobj, v3, v3);
                                Glu.gluTessVertex(tobj, v4, v4);
                            Glu.gluTessEndContour(tobj);
                            Glu.gluTessBeginContour(tobj);
                                Glu.gluTessVertex(tobj, v5, v5);
                                Glu.gluTessVertex(tobj, v6, v6);
                                Glu.gluTessVertex(tobj, v7, v7);
                            Glu.gluTessEndContour(tobj);
                        Glu.gluTessEndPolygon(tobj);
                    </code>
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)">
            <summary>
                Specifies a normal for a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="x">
                The x-coordinate component of a normal.
            </param>
            <param name="y">
                The y-coordinate component of a normal.
            </param>
            <param name="z">
                The z-coordinate component of a normal.
            </param>
            <remarks>
                <para>
                    <b>gluTessNormal</b> describes a normal for a polygon that the program is
                    defining.  All input data will be projected onto a plane perpendicular to one
                    of the three coordinate axes before tessellation and all output triangles
                    will be oriented CCW with respect to the normal (CW orientation can be
                    obtained by reversing the sign of the supplied normal).  For example, if you
                    know that all polygons lie in the x-y plane, call
                    <c>Glu.gluTessNormal(tess, 0.0, 0.0, 1.0)</c> before rendering any polygons.
                </para>
                <para>
                    If the supplied normal is (0.0, 0.0, 0.0) (the initial value), the normal is
                    determined as follows.  The direction of the normal, up to its sign, is found
                    by fitting a plane to the vertices, without regard to how the vertices are
                    connected.  It is expected that the input data lies approximately in the
                    plane; otherwise, projection perpendicular to one of the three coordinate
                    axes may substantially change the geometry.  The sign of the normal is chosen
                    so that the sum of the signed areas of all input contours is nonnegative
                    (where a CCW contour has positive area).
                </para>
                <para>
                    The supplied normal persists until it is changed by another call to
                    <b>gluTessNormal</b>.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)">
            <summary>
                Sets the property of a tessellation object.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="which">
                <para>
                    The property value to set.  The following values are valid:
                </para>
                <para>
                    <list type="table">
                        <listheader>
                            <term>Value</term>
                            <description>Description</description>
                        </listheader>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_RULE"/></term>
                            <description>
                                <para>
                                    Determines which parts of the polygon are on the "interior".
                                    <i>data</i> may be set to one of
                                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_ODD"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_NONZERO"/>,
                                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_POSITIVE"/>, or
                                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_NEGATIVE"/>, or
                                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_WINDING_ABS_GEQ_TWO"/>.
                                </para>
                                <para>
                                    To understand how the winding rule works, consider that the
                                    input contours partition the plane into regions.  The winding
                                    rule determines which of these regions are inside the
                                    polygon.
                                </para>
                                <para>
                                    For a single contour C, the winding number of a point x is
                                    simply the signed number of revolutions we make around x as
                                    we travel once around C (where CCW is positive).  When there
                                    are several contours, the individual winding numbers are
                                    summed.  This procedure associates a signed integer value
                                    with each point x in the plane.  Note that the winding number
                                    is the same for all points in a single region.
                                </para>
                                <para>
                                    The winding rule classifies a region as "inside" if its
                                    winding number belongs to the chosen category (odd, nonzero,
                                    positive, negative, or absolute value of at least two).  The
                                    previous GLU tessellator (prior to GLU 1.2) used the "odd"
                                    rule.  The "nonzero" rule is another common way to define the
                                    interior.  The other three rules are useful for polygon CSG
                                    operations.
                                </para>
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_BOUNDARY_ONLY"/></term>
                            <description>
                                Is a boolean value ("value" should be set to
                                <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> or <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/>).  When
                                set to <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>, a set of closed contours
                                separating the polygon interior and exterior are returned instead
                                of a tessellation.  Exterior contours are oriented CCW with
                                respect to the normal; interior contours are oriented CW.  The
                                <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN"/> and
                                <see cref="F:Tao.OpenGl.Glu.GLU_TESS_BEGIN_DATA"/> callbacks use the type
                                <see cref="F:Tao.OpenGl.Gl.GL_LINE_LOOP"/> for each contour.
                            </description>
                        </item>
                        <item>
                            <term><see cref="F:Tao.OpenGl.Glu.GLU_TESS_TOLERANCE"/></term>
                            <description>
                                <para>
                                    Specifies a tolerance for merging features to reduce the size
                                    of the output.  For example, two vertices that are very close
                                    to each other might be replaced by a single vertex.  The
                                    tolerance is multiplied by the largest coordinate magnitude
                                    of any input vertex; this specifies the maximum distance that
                                    any feature can move as the result of a single merge
                                    operation.  If a single feature takes part in several merge
                                    operations, the total distance moved could be larger.
                                </para>
                                <para>
                                    Feature merging is completely optional; the tolerance is only
                                    a hint.  The implementation is free to merge in some cases
                                    and not in others, or to never merge features at all.  The
                                    initial tolerance is 0.
                                </para>
                                <para>
                                    The current implementation merges vertices only if they are
                                    exactly coincident, regardless of the current tolerance.  A
                                    vertex is spliced into an edge only if the implementation is
                                    unable to distinguish which side of the edge the vertex lies
                                    on.  Two edges are merged only when both endpoints are
                                    identical.
                                </para>
                            </description>
                        </item>
                    </list>
                </para>
            </param>
            <param name="data">
                The value of the indicated property.
            </param>
            <remarks>
                <b>gluTessProperty</b> is used to control properties stored in a tessellation
                object.  These properties affect the way that the polygons are interpreted
                and rendered.
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluGetTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Byte[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Double[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Double[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Double[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int16[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int16[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int16[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int32[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int32[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Int32[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Single[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Single[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Single[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt16[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt16[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt16[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt32[])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt32[0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.UInt32[0:,0:,0:])">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.IntPtr)">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluTessVertex(Tao.OpenGl.Glu.GLUtesselator,System.Double[],System.Void*)">
            <summary>
                Specifies a vertex on a polygon.
            </summary>
            <param name="tess">
                The tessellation object (created with <see cref="M:Tao.OpenGl.Glu.gluNewTess"/>).
            </param>
            <param name="location">
                The location of the vertex.
            </param>
            <param name="data">
                A pointer passed back to the program with the vertex callback (as specified
                by <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>).
            </param>
            <remarks>
                <para>
                    <b>gluTessVertex</b> describes a vertex on a polygon that the program
                    defines.  Successive <b>gluTessVertex</b> calls describe a closed contour.
                    For example, to describe a quadrilateral <b>gluTessVertex</b> should be
                    called four times.  <b>gluTessVertex</b> can only be called between
                    <see cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/> and <see cref="M:Tao.OpenGl.Glu.gluTessEndContour(Tao.OpenGl.Glu.GLUtesselator)"/>.
                </para>
                <para>
                    <i>data</i> normally points to a structure containing the vertex location,
                    as well as other per-vertex attributes such as color and normal.  This
                    pointer is passed back to the user through the <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX"/>
                    or <see cref="F:Tao.OpenGl.Glu.GLU_TESS_VERTEX_DATA"/> callback after tessellation (see the
                    <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/> reference page).
                </para>
                <para>
                    <b>EXAMPLE</b>
                </para>
                <para>
                    The following describes a quadrilateral with a triangular hole:
                </para>
                <para>
                    <code>
                        Glu.gluTessBeginPolygon(tess, null);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v1, v1);
                                Glu.gluTessVertex(tess, v2, v2);
                                Glu.gluTessVertex(tess, v3, v3);
                                Glu.gluTessVertex(tess, v4, v4);
                            Glu.gluTessEndContour(tess);
                        Glu.gluNextContour(tess, Glu.GLU_INTERIOR);
                            Glu.gluTessBeginContour(tess);
                                Glu.gluTessVertex(tess, v5, v5);
                                Glu.gluTessVertex(tess, v6, v6);
                                Glu.gluTessVertex(tess, v7, v7);
                            Glu.gluTessEndContour(tess);
                        Glu.gluTessEndPolygon(tess);
                    </code>
                </para>
                <para>
                    <b>NOTES</b>
                </para>
                <para>
                    It is a common error to use a local variable for <i>location</i> or
                    <i>data</i> and store values into it as part of a loop.  For example:
                </para>
                <para>
                    <code>
                        for(int i = 0; i &lt; NVERTICES; ++i) { 
                            double data[3];
                            data[0] = vertex[i, 0];
                            data[1] = vertex[i, 1];
                            data[2] = vertex[i, 2];
                            Glu.gluTessVertex(tobj, data, data);
                        } 
                    </code>
                </para>
                <para>
                    This doesn't work.  Because the pointers specified by <i>location</i> and
                    <i>data</i> might not be dereferenced until <see cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
                    is executed, all the vertex coordinates but the very last set could be
                    overwritten before tessellation begins.
                </para>
                <para>
                    Two common symptoms of this problem are consists of a single point (when a
                    local variable is used for <i>data</i>) and a
                    <see cref="F:Tao.OpenGl.Glu.GLU_TESS_NEED_COMBINE_CALLBACK"/> error (when a local variable
                    is used for <i>location</i>).
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Glu.gluNewTess"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginPolygon(Tao.OpenGl.Glu.GLUtesselator,System.Byte[])"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessBeginContour(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessEndPolygon(Tao.OpenGl.Glu.GLUtesselator)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessNormal(Tao.OpenGl.Glu.GLUtesselator,System.Double,System.Double,System.Double)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessProperty(Tao.OpenGl.Glu.GLUtesselator,System.Int32,System.Double)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluUnProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)">
            <summary>
                Maps window coordinates to object coordinates.
            </summary>
            <param name="winX">
                The window's x axis coordinate to be mapped.
            </param>
            <param name="winY">
                The window's y axis coordinate to be mapped.
            </param>
            <param name="winZ">
                The window's z axis coordinate to be mapped.
            </param>
            <param name="modelMatrix">
                The modelview matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="projectionMatrix">
                The projection matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="viewport">
                The viewport (as from a <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="objX">
                The computed object's x axis coordinate.
            </param>
            <param name="objY">
                The computed object's y axis coordinate.
            </param>
            <param name="objZ">
                The computed object's z axis coordinate.
            </param>
            <returns>
                A return value of <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> indicates success; a return value
                of <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates failure.
            </returns>
            <remarks>
                <para>
                    <b>gluUnProject</b> maps the specified window coordinates into object
                    coordinates using <i>modelMatrix</i>, <i>projectionMatrix</i>, and
                    <i>viewport</i>.  The result is stored in <i>objX</i>, <i>objY</i>, and
                    <i>objZ</i>.  A return value of <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> indicates success;
                    a return value of <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates failure.
                </para>
                <para>
                    To compute the coordinates (<i>objX</i>, <i>objY</i>, and <i>objZ</i>),
                    <b>gluUnProject</b> multiplies the normalized device coordinates by the
                    inverse of <i>modelMatrix</i> multiplied by <i>projectionMatrix</i> as
                    follows:
                </para>
                <para>
                    <code>
                                          (  2(winX - viewport[0])  )
                                          |  ----------------- - 1  |
                                          |       viewport[2]       |
                        (      )          |                         |
                        | objX |          |  2(winY - viewport[1])  |
                        | objY | = INV(PM)|  ----------------- - 1  |
                        | objZ |          |       viewport[3]       |
                        (  W   )          |                         |
                                          |       2(winZ) - 1       |
                                          |                         |
                                          (            1            )
                    </code>
                </para>
                <para>
                    INV() denotes matrix inversion.  W is an unused variable, included for
                    consistent matrix notation. 
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)"/>
        </member>
        <member name="M:Tao.OpenGl.Glu.gluUnProject4(System.Double,System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double,System.Double,System.Double@,System.Double@,System.Double@,System.Double@)">
            <summary>
                Maps window and clip coordinates to object coordinates.
            </summary>
            <param name="winX">
                The window's x axis coordinate to be mapped.
            </param>
            <param name="winY">
                The window's y axis coordinate to be mapped.
            </param>
            <param name="winZ">
                The window's z axis coordinate to be mapped.
            </param>
            <param name="clipW">
                The clip w coordinate to be mapped.
            </param>
            <param name="modelMatrix">
                The modelview matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="projectionMatrix">
                The projection matrix (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="viewport">
                The viewport (as from a <see cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="nearVal">
                The near plane (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="farVal">
                The far plane (as from a <see cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/> call).
            </param>
            <param name="objX">
                The computed object's x axis coordinate.
            </param>
            <param name="objY">
                The computed object's y axis coordinate.
            </param>
            <param name="objZ">
                The computed object's z axis coordinate.
            </param>
            <param name="objW">
                The computed object's clip w coordinate.
            </param>
            <returns>
                A return value of <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/> indicates success; a return
                value of <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates failure.
            </returns>
            <remarks>
                <para>
                    <b>gluUnProject4</b> maps the specified window coordinates <i>winX</i>,
                    <i>winY</i> and <i>winZ</i> and its clip w coordinate <i>clipW</i> into
                    object coordinates (<i>objX</i>, <i>objY</i>, <i>objZ</i>, <i>objW</i>)
                    using <i>modelMatrix</i>, <i>projectionMatrix</i> and <i>viewport</i>.
                    <i>clipW</i> can be other than 1 as for vertices in
                    <see cref="M:Tao.OpenGl.Gl.glFeedbackBuffer(System.Int32,System.Int32,System.IntPtr)"/> when data type
                    <see cref="F:Tao.OpenGl.Gl.GL_4D_COLOR_TEXTURE"/> is returned.  This also handles the
                    case where the <i>nearVal</i> and <i>farVal</i> planes are different from the
                    default, 0 and 1, respectively.  A return value of <see cref="F:Tao.OpenGl.Gl.GL_TRUE"/>
                    indicates success; a return value of <see cref="F:Tao.OpenGl.Gl.GL_FALSE"/> indicates
                    failure.
                </para>
                <para>
                    To compute the coordinates (<i>objX</i>, <i>objY</i>, <i>objZ</i> and
                    <i>objW</i>), <b>gluUnProject4</b> multiplies the normalized device
                    coordinates by the inverse of <i>modelMatrix</i> multiplied by
                    <i>projectionMatrix</i> as follows:
                </para>
                <para>
                    <code>
                                          ( 2(winX - viewport[0]  )
                                          | ---------------- - 1  |
                                          |     viewport[2]       |
                                          |                       |
                                          | 2(winY - viewport[1]  |
                    ( objX  )             | ---------------- - 1  |
                    | objY  | = INV(PM) * |     viewport[3]       |
                    | objZ  |             |                       |
                    ( objW  )             |  2(winZ - nearVal)    |
                                          |  -------------- - 1   |
                                          |    farVal - nearVal   |
                                          |                       |
                                          (        clipW          )
                    </code>
                </para>
                <para>
                    INV() denotes matrix inversion.
                </para>
                <para>
                    <b>gluUnProject4</b> is equivalent to <see cref="M:Tao.OpenGl.Glu.gluUnProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)"/> when
                    <i>clipW</i> is 1, <i>nearVal</i> is 0 and <i>farVal</i> is 1.
                </para>
                <para>
                    <b>gluUnProject4</b> is available only if the GLU version is 1.3 or greater.
                </para>
            </remarks>
            <seealso cref="M:Tao.OpenGl.Gl.glFeedbackBuffer(System.Int32,System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetDoublev(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Gl.glGetIntegerv(System.Int32,System.IntPtr)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)"/>
            <seealso cref="M:Tao.OpenGl.Glu.gluUnProject(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Int32[],System.Double@,System.Double@,System.Double@)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUnurbs">
            <summary>
                Defines a GLU NURBS object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUnurbs.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUquadric">
            <summary>
                Defines a GLU quadric object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUquadric.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUtesselator">
            <summary>
                Defines a GLU tesselator object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUtesselator.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUnurbsObj">
            <summary>
                Defines a GLU NURBS object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUnurbsObj.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUquadricObj">
            <summary>
                Defines a GLU quadric object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUquadricObj.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUtesselatorObj">
            <summary>
                Defines a GLU tesselator object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUtesselatorObj.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.GLUtriangulatorObj">
            <summary>
                Defines a GLU triangulator object.
            </summary>
        </member>
        <member name="F:Tao.OpenGl.Glu.GLUtriangulatorObj.Data">
            <summary>
                Keeps the struct from being garbage collected prematurely.
            </summary>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsBeginCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsBeginDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsColorCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsColorDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsEndCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsEndDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsErrorCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsNormalCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsNormalDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsTexCoordCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsTexCoordDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsVertexCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.NurbsVertexDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluNurbsCallback(Tao.OpenGl.Glu.GLUnurbs,System.Int32,Tao.OpenGl.Glu.NurbsBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.QuadricErrorCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluQuadricCallback(Tao.OpenGl.Glu.GLUquadric,System.Int32,Tao.OpenGl.Glu.QuadricErrorCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessBeginCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessBeginDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessCombineCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessCombineCallback1">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessCombineDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessEdgeFlagCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessEdgeFlagDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessEndCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessEndDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessErrorCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessErrorDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessVertexCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessVertexCallback1">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
        <member name="T:Tao.OpenGl.Glu.TessVertexDataCallback">
            <summary>
                Callback (delegate) for use with <see cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>.
            </summary>
            <seealso cref="M:Tao.OpenGl.Glu.gluTessCallback(Tao.OpenGl.Glu.GLUtesselator,System.Int32,Tao.OpenGl.Glu.TessBeginCallback)"/>
        </member>
    </members>
</doc>
