h$$9      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY Z [ \ ] ^ _ ` a b c defghijklmnopqrstuvwxyz{|}~                                                                               (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone GLUTReport any pending GL errors to stderr (which is typically the console). If there are no pending errors, this routine does nothing. Note that the error flags are reset after this action, i.e. there are no pending errors left afterwards.(c) Sven Panne 2018BSD3 Sven Panne stableportable Safe-Inferred (c) Sven Panne 2018BSD3 Sven Panne stableportable Safe-Inferred GLUT#The stroke fonts available in GLUT.GLUTA proportionally spaced Roman Simplex font for ASCII characters 32 through 127. The maximum top character in the font is 119.05 units; the bottom descends 33.33 units.GLUT?A mono-spaced spaced Roman Simplex font (same characters as ) for ASCII characters 32 through 127. The maximum top character in the font is 119.05 units; the bottom descends 33.33 units. Each character is 104.76 units wide.GLUTThe bitmap fonts available in GLUT. The exact bitmap to be used is defined by the standard X glyph bitmaps for the X font with the given name.GLUTA fixed width font with every character fitting in an 8 by 13 pixel rectangle. (8-misc-fixed-medium-r-normal--13-120-75-75-C-80-iso8859-1)GLUTA fixed width font with every character fitting in an 9 by 15 pixel rectangle. (8-misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1)GLUT5A 10-point proportional spaced Times Roman font. (9-adobe-times-medium-r-normal--10-100-75-75-p-54-iso8859-1)GLUT5A 24-point proportional spaced Times Roman font. (:-adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1) GLUT3A 10-point proportional spaced Helvetica font. (=-adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1) GLUT3A 12-point proportional spaced Helvetica font. (=-adobe-helvetica-medium-r-normal--12-120-75-75-p-67-iso8859-1) GLUT3A 18-point proportional spaced Helvetica font. (=-adobe-helvetica-medium-r-normal--18-180-75-75-p-98-iso8859-1) (c) Sven Panne 2018BSD3 Sven Panne stableportableNonec(c) Sven Panne 2018BSD3 Sven Panne stableportableNone (c) Sven Panne 2018BSD3 Sven Panne stableportableNone (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone'wGLUT"GLUT offers five types of objects:"The five Platonic solids, see  /http://mathworld.wolfram.com/PlatonicSolid.html.A rhombic dodecahedron, see  5http://mathworld.wolfram.com/RhombicDodecahedron.html."Approximations to rounded objects.The classic teaset modeled by Martin Newell in 1975. Both surface normals and texture coordinates for the teaset are generated.A Sierpinski sponge, see  (http://mathworld.wolfram.com/Tetrix.html.GLUTA cube centered at the modeling coordinates origin with sides of the given length.GLUTA dodecahedron (12-sided regular solid) centered at the modeling coordinates origin with a radius of sqrt 3.GLUTA icosahedron (20-sided regular solid) centered at the modeling coordinates origin with a radius of 1.0.GLUTRender a solid octahedron (8-sided regular solid) centered at the modeling coordinates origin with a radius of 1.0.GLUTRender a solid tetrahedron (4-sided regular solid) centered at the modeling coordinates origin with a radius of sqrt 3.GLUT( freeglut only) A rhombic dodecahedron whose corners are at most a distance of one from the origin. The rhombic dodecahedron has faces which are identical rhombi, but which have some vertices at which three faces meet and some vertices at which four faces meet. The length of each side is  (sqrt 3)/22. Vertices at which four faces meet are found at  (0, 0, +/-1) and !(+/-(sqrt 2)/2, +/-(sqrt 2)/2, 0).GLUTA sphere centered at the modeling coordinates origin of the specified radius. The sphere is subdivided around the Z axis into slices (similar to lines of longitude) and along the Z axis into stacks (similar to lines of latitude).GLUTA cone oriented along the Z axis. The base of the cone is placed at Z = 0, and the top at Z = the given height. The cone is subdivided around the Z axis into slices, and along the Z axis into stacks.GLUT( freeglut only) A cylinder oriented along the Z axis. The base of the cylinder is placed at Z = 0, and the top at Z = the given height. The cylinder is subdivided around the Z axis into slices, and along the Z axis into stacks.GLUTA torus (doughnut) centered at the modeling coordinates origin whose axis is aligned with the Z axis. The torus is described by its inner and outer radius, the number of sides for each radial section, and the number of radial divisions (rings).GLUT$A teapot with a given relative size.GLUT( freeglut only&) A teacup with a given relative size.GLUT( freeglut only() A teaspoon with a given relative size.GLUT( freeglut only) A Sierpinski sponge of a given level, where a level 0 sponge is the same as a .GLUTFlavour of object renderingGLUT?Object is rendered as a solid with shading and surface normals. GLUT:Object is rendered as a wireframe without surface normals.!GLUT&Render an object in the given flavour.  !  !(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone,)GLUTRender the string in the named font, without using any display lists. Rendering a nonexistent character has no effect.If the font is a bitmap font, ) automatically sets the OpenGL unpack pixel storage modes it needs appropriately and saves and restores the previous modes before returning. The generated call to  will adjust the current raster position based on the width of the string. If the font is a stroke font,  is used to translate the current model view matrix to advance the width of the string.*GLUTFor a bitmap font, return the width in pixels of a string. For a stroke font, return the width in units. While the width of characters in a font may vary (though fixed width fonts do not vary), the maximum height characteristics of a particular font are fixed.+GLUT( freeglut only) For a bitmap font, return the maximum height of the characters in the given font measured in pixels. For a stroke font, return the height in units. ()*+()*+ (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone4.GLUT&The state of the per-window key repeat1GLUT"The state of the global key repeat5GLUTControls the key repeat mode for the window system on a global basis if possible. If supported by the window system, the key repeat can either be disabled, enabled, or set to the window system's default key repeat state.X Implementation Notes: X11 sends KeyPress events repeatedly when the window system's global auto repeat is enabled. 6 can prevent these auto repeated keystrokes from being reported as keyboard or special callbacks, but there is still some minimal overhead by the X server to continually stream KeyPress& events to the GLUT application. The 5 state variable can be used to actually disable the global sending of auto repeated KeyPress events. Note that 5 affects the global window system auto repeat state so other applications will not auto repeat if you disable auto repeat globally through 5. GLUT applications using the X11 GLUT implementation should disable key repeat with 5 to disable key repeats most efficiently, but are responsible for explicitly restoring the default key repeat state on exit.Win32 Implementation Notes: The Win32 implementation of 5 does nothing. The 6 can be used in the Win32 GLUT implementation to ignore repeated keys on a per-window basis without changing the global window system key repeat.6GLUT7Controls if auto repeat keystrokes are reported to the current window. Ignoring auto repeated keystrokes is generally done in conjunction with using the . If you do not ignore auto repeated keystrokes, your GLUT application will experience repeated release/press callbacks. Games using the keyboard will typically want to ignore key repeat.7GLUT&Execute the joystick callback set by  once (if one exists). This is done in a synchronous fashion within the current context, i.e. when 72 returns, the callback will have already happened. ./01234567 12345./067(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone9>GLUT,The behaviour when the user closes a window.?GLUT4Exit the whole program when any window is closed or D is called (default).@GLUT/Return from mainLoop when any window is closed.AGLUT5Return from mainLoop after the last window is closed.BGLUTEnter the GLUT event processing loop; it will call as necessary any callbacks that have been registered. This routine should be called at most once in a GLUT program.CGLUT( freeglut only) Process one iteration's worth of events in its event loop. This allows the application to control its own event loop and still use the GLUT package.DGLUT( freeglut only) Stop the event loop. If E contains ?, the application will exit; otherwise control will return to the function which called B.+If the application has two nested calls to B and calls D, the behaviour is undefined. It may leave only the inner nested loop or it may leave both loops. If the reader has a strong preference for one behaviour over the other he should contact the freeglut Programming Consortium and ask for the code to be fixed.EGLUT( freeglut only7) Controls the behaviour when the user closes a window.>?@ABCDEBCD>?@AE(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone> IGLUT Mouse buttons, including a wheelPGLUTA relation between a  and a numeric value.QGLUTEqual.RGLUT Not equal.SGLUTLess than and preferring larger difference (the least is best).TGLUTLess than or equal and preferring larger difference (the least is best).UGLUTGreater than and preferring larger differences (the most is best).VGLUTGreater than or equal and preferring more instead of less. This relation is useful for allocating resources like color precision or depth buffer precision where the maximum precision is generally preferred. Contrast with W relation.WGLUTGreater than or equal but preferring less instead of more. This relation is useful for allocating resources such as stencil bits or auxillary color buffers where you would rather not over-allocate.XGLUT;An opaque identifier for a top-level window or a subwindow.IJKLMNOPQRSTUVWX (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneMSYGLUTThe  layer in use.ZGLUTThe normal plane.[GLUT The overlay.\GLUTControls the overlay for the current window. The requested display mode for the overlay is determined by the initial display mode. ]= can be used to determine if an overlay is possible for the current window with the current initial display mode. Do not attempt to establish an overlay when one is not possible; GLUT will terminate the program.When \ is set to  when an overlay already exists, the existing overlay is first removed, and then a new overlay is established. The state of the old overlay's OpenGL context is discarded. Implicitly, the window's  layer in use changes to the overlay immediately after the overlay is established.The initial display state of an overlay is shown, however the overlay is only actually shown if the overlay's window is shown.Setting \ to  is safe even if no overlay is currently established, nothing happens in this case. Implicitly, the window's /layer in use/ changes to the normal plane immediately once the overlay is removed.If the program intends to re-establish the overlay later, it is typically faster and less resource intensive to use ^5 to simply change the display status of the overlay.X Implementation Notes: GLUT for X uses the SERVER_OVERLAY_VISUALS convention to determine if overlay visuals are available. While the convention allows for opaque overlays (no transparency) and overlays with the transparency specified as a bitmask, GLUT overlay management only provides access to transparent pixel overlays.Until RGBA overlays are better understood, GLUT only supports color index overlays.]GLUT Contains , if an overlay could be established for the current window given the current initial display mode. If it contains  , setting \ will fail with a fatal error.^GLUT.Controls the visibility of the overlay of the current window.The effect of showing or hiding an overlay takes place immediately. Note that setting ^ to  will not actually display the overlay unless the window is also shown (and even a shown window may be obscured by other windows, thereby obscuring the overlay). It is typically faster and less resource intensive to use the routines below to control the display status of an overlay as opposed to removing and re-establishing the overlay._GLUTControls the per-window  layer in use for the current window, which can either be the normal plane or the overlay. Selecting the overlay should only be done if an overlay exists, however windows without an overlay may still set the  layer in use to Z>. OpenGL commands for the window are directed to the current  layer in use.`GLUT-Mark the overlay of the given window (or the current window, if none is supplied) as needing to be redisplayed. The next iteration through , the window's overlay display callback (or simply the display callback if no overlay display callback is registered) will be called to redisplay the window's overlay plane. Multiple calls to ` before the next display callback opportunity (or overlay display callback opportunity if one is registered) generate only a single redisplay. ` may be called within a window's display or overlay display callback to re-mark that window for redisplay.Logically, overlay damage notification for a window is treated as a ` on the damaged window. Unlike damage reported by the window system, `9 will not set to true the overlay's damaged status (see  ). Also, see .YZ[\]^_`\]^YZ[_`(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNonedGLUTAn OpenGL API profile, affecting the rendering context to create, used in conjunction with .eGLUT The OpenGL core profile, which all OpenGL 3.2 implementations are required to support.fGLUT The OpenGL  compatibility< profile, which is optional for OpenGL 3.2 implementations.gGLUTA flag affecting the rendering context to create, used in conjunction with .hGLUTDebug contexts are intended for use during application development, and provide additional runtime checking, validation, and logging functionality while possibly incurring performance penalties. The additional functionality provided by debug contexts may vary according to the implementation. In some cases a debug context may be identical to a non-debug context.iGLUTForward-compatible contexts are defined only for OpenGL versions 3.0 and later. They must not support functionality marked as  deprecated by that version of the API, while a non-forward-compatible context must support all functionality in that version, deprecated or not.jGLUTThe kind of GLX rendering context used. Direct rendering provides a performance advantage in some implementations. However, direct rendering contexts cannot be shared outside a single process, and they may be unable to render to GLX pixmaps.kGLUTRendering is always done through the X server. This corresponds to the command line argument  -indirect, see .lGLUTTry to use direct rendering, silently using indirect rendering if this is not possible.mGLUTTry to use direct rendering, issue a warning and use indirect rendering if this is not possible.nGLUTTry to use direct rendering, issue an error and terminate the program if this is not possible.This corresponds to the command line argument -direct, see .oGLUT2How rendering context for new windows are created.pGLUTCreate a new context via glXCreateContext or wglCreateContext (default).qGLUT%Re-use the current rendering context.rGLUT$A single capability description for .sGLUTA description of a capability with a specific relation to a numeric value.tGLUTWhen the relation and numeric value are not specified, each capability has a different default, see the different constructors of u.uGLUTCapabilities for 6, most of them are extensions of the constructors of .vGLUTNumber of bits of red, green, blue, and alpha in the RGBA color buffer. Default is "V 18" for red, green, blue, and alpha capabilities, and "Q 1&" for the RGBA color model capability.wGLUTNumber of bits of red, green, and blue in the RGBA color buffer and zero bits of alpha color buffer precision. Default is "V 15" for the red, green, and blue capabilities, and "W 0 " for alpha capability, and "Q 1)" for the RGBA color model capability.xGLUT3Red color buffer precision in bits. Default is "V 1".yGLUT5Green color buffer precision in bits. Default is "V 1".zGLUT4Blue color buffer precision in bits. Default is "V 1".{GLUTBoolean if the color model is color index or not. True is color index. Default is "V 1".|GLUT?Number of bits in the color index color buffer. Default is "V 1".}GLUTBoolean indicate the color buffer is single buffered. Default is "Q 1".~GLUTBoolean indicating if the color buffer is double buffered. Default is "Q 1".GLUTRed, green, blue, and alpha accumulation buffer precision in bits. Default is "V 12" for red, green, blue, and alpha capabilities.GLUTRed, green, and green accumulation buffer precision in bits and zero bits of alpha accumulation buffer precision. Default is "V 11" for red, green, and blue capabilities, and "W 0" for the alpha capability.GLUT5Alpha color buffer precision in bits. Default is "V 1".GLUT?Number of bits of precsion in the depth buffer. Default is "V 12".GLUT5Number of bits in the stencil buffer. Default is "W 1".GLUT>Indicates the number of multisamples to use based on GLX's SGIS_multisample. extension (for antialiasing). Default is "T 4". This default means that a GLUT application can request multisampling if available by simply specifying "t ".GLUTBoolean indicating the color buffer is supports OpenGL-style stereo. Default is "Q 1".GLUTNumber of bits of red in the RGBA and zero bits of green, blue (alpha not specified) of color buffer precision. Default is "V 1#" for the red capabilitis, and "Q 0/" for the green and blue capabilities, and "Q 19" for the RGBA color model capability, and, for X11, "Q 1 " for the  capability. SGI InfiniteReality (and other future machines) support a 16-bit luminance (single channel) display mode (an additional 16-bit alpha channel can also be requested). The red channel maps to gray scale and green and blue channels are not available. A 16-bit precision luminance display mode is often appropriate for medical imaging applications. Do not expect many machines to support extended precision luminance display modes.GLUT( freeglut only.) Number of auxiliary buffers. Default is "Q 1".GLUTA special capability name indicating where the value represents the Nth frame buffer configuration matching the description string. When not specified, 7 also uses the first (best matching) configuration. * requires a relation and numeric value.GLUTBoolean indicating if the frame buffer configuration is conformant or not. Conformance information is based on GLX's EXT_visual_rating extension if supported. If the extension is not supported, all visuals are assumed conformant. Default is "Q 1".GLUTBoolean indicating if the frame buffer configuration is slow or not. Slowness information is based on GLX's EXT_visual_rating extension if supported. If the extension is not supported, all visuals are assumed fast. Note that slowness is a relative designation relative to other frame buffer configurations available. The intent of the slow capability is to help programs avoid frame buffer configurations that are slower (but perhaps higher precision) for the current machine. Default is "V 0". This default means that slow visuals are used in preference to fast visuals, but fast visuals will still be allowed.GLUTOnly recognized on GLUT implementations for Win32, this capability name matches the Win32 Pixel Format Descriptor by number.  can only be used with s.GLUTOnly recongized on GLUT implementations for the X Window System, this capability name matches the X visual ID by number. ' requires a relation and numeric value.GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  StaticGray. Default is "Q 1".GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  GrayScale. Default is "Q 1".GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  StaticColor. Default is "Q 1".GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  PsuedoColor. Default is "Q 1".GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  TrueColor. Default is "Q 1".GLUTOnly recongized on GLUT implementations for the X Window System, boolean indicating if the frame buffer configuration's X visual is of type  DirectColor. Default is "Q 1".GLUTA single aspect of a window which is to be created, used in conjunction with .GLUT;Select an RGBA mode window. This is the default if neither  nor  are specified.GLUT An alias for .GLUT1Select a color index mode window. This overrides  if it is also specified.GLUTSelect a window with a "luminance" color model. This model provides the functionality of OpenGL's RGBA color model, but the green and blue components are not maintained in the frame buffer. Instead each pixel's red component is converted to an index between zero and   and looked up in a per-window color map to determine the color of pixels within the window. The initial colormap of  windows is initialized to be a linear gray ramp, but can be modified with GLUT's colormap actions. Implementation Notes: , is not supported on most OpenGL platforms.GLUT?Select a window with an alpha component to the color buffer(s).GLUT,Select a window with an accumulation buffer.GLUT$Select a window with a depth buffer.GLUT&Select a window with a stencil buffer.GLUT( freeglut only) Select a window with n" (1 .. 4) auxiliary buffers. Any n+ outside the range 1 .. 4 is a fatal error.GLUTSelect a single buffered window. This is the default if neither  nor  are specified.GLUT0Select a double buffered window. This overrides  if it is also specified.GLUTSelect a window with multisampling support. If multisampling is not available, a non-multisampling window will automatically be chosen. Note: both the OpenGL client-side and server-side implementations must support the GLX_SAMPLE_SGIS? extension for multisampling to be available. Deprecated, use .GLUTSelect a window with multisampling, using the given samples per pixel.GLUTSelect a stereo window.GLUT#Select a window without a caption ( freeglut only).GLUT%Select a window without any borders ( freeglut only).GLUTSelect an sRGB mode window ( freeglut only).GLUTGiven the program name and command line arguments, initialize the GLUT library and negotiate a session with the window system. During this process,  may cause the termination of the GLUT program with an error message to the user if GLUT cannot be properly initialized. Examples of this situation include the failure to connect to the window system, the lack of window system support for OpenGL, and invalid command line options. also processes command line options, but the specific options parsed are window system dependent. Any command line arguments which are not GLUT-specific are returned.X Implementation Notes:1 The X Window System specific options parsed by  are as follows: -display DISPLAY: Specify the X server to connect to. If not specified, the value of the DISPLAY environment variable is used. -geometry WxH+X+Y: Determines where windows should be created on the screen. The parameter following  -geometry should be formatted as a standard X geometry specification. The effect of using this option is to change the GLUT initial size and initial position the same as if  or  were modified directly.-iconic?: Requests all top-level windows be created in an iconic state. -indirect6: Force the use of indirect OpenGL rendering contexts.-direct: Force the use of direct OpenGL rendering contexts (not all GLX implementations support direct rendering contexts). A fatal error is generated if direct rendering is not supported by the OpenGL implementation. If neither  -indirect or -direct are used to force a particular behavior, GLUT will attempt to use direct rendering if possible and otherwise fallback to indirect rendering.-gldebug4: After processing callbacks and/or events, call ! to check if there are any pending OpenGL errors. Using this option is helpful in detecting OpenGL run-time errors.-sync: Enable synchronous X protocol transactions. This option makes it easier to track down potential X protocol errors.GLUTConvenience action: Initialize GLUT, returning the program name and any non-GLUT command line arguments.GLUT( freeglut only2) De-initialize GLUT. After this, one has to use  or  to initialize GLUT again.GLUT Controls the initial window position. Windows created by "3 will be requested to be created with the current initial window position. The initial value of the /initial window position/ GLUT state is  (-1) (-1)). If either the X or Y component of the initial window position is negative, the actual window position is left to the window system to determine.The intent of the initial window position is to provide a suggestion to the window system for a window's initial position. The window system is not obligated to use this information. Therefore, GLUT programs should not assume the window was created at the specified position.GLUT Controls the initial window size. Windows created by "3 will be requested to be created with the current initial window size. The initial value of the /initial window size/ GLUT state is  300 3006. If either the width or the height component of the initial window size is non-positive, the actual window size is left to the window system to determine.The intent of the initial window size is to provide a suggestion to the window system for a window's initial size. The window system is not obligated to use this information. Therefore, GLUT programs should not assume the window was created at the specified size. A GLUT program should use the window's reshape callback to determine the true size of the window.GLUT Controls the initial display mode used when creating top-level windows, subwindows, and overlays to determine the OpenGL display mode for the to-be-created window or overlay. Note that  selects the RGBA color model, but it does not request any bits of alpha (sometimes called an  alpha buffer or destination alpha+) be allocated. To request alpha, specify . The same applies to .GLUT Contains  if the current display mode is supported,  otherwise.GLUT Controls the initial display mode used when creating top-level windows, subwindows, and overlays to determine the OpenGL display mode for the to-be-created window or overlay. It is described by a list of zero or more capability descriptions, which are translated into a set of criteria used to select the appropriate frame buffer configuration. The criteria are matched in strict left to right order of precdence. That is, the first specified criterion (leftmost) takes precedence over the later criteria for non-exact criteria (U, S, etc.). Exact criteria (Q, R3) must match exactly so precedence is not relevant.Unspecified capability descriptions will result in unspecified criteria being generated. These unspecified criteria help 7 behave sensibly with terse display mode descriptions.Here is an example using :  initialDisplayCapabilities $= [ With DisplayRGB, Where DisplayDepth IsAtLeast 16, With DisplaySamples, Where DisplayStencil IsNotLessThan 2, With DisplayDouble ] The above call requests a window with an RGBA color model (but requesting no bits of alpha), a depth buffer with at least 16 bits of precision but preferring more, multisampling if available, at least 2 bits of stencil (favoring less stencil to more as long as 2 bits are available), and double buffering.GLUT( freeglut only?) Controls the creation of rendering contexts for new windows.GLUT(freeglut on X11 only) Controls which kind of rendering context is created when a new one is required.GLUT( freeglut only) Controls the API major/minor version of the OpenGL context. If a version less than or equal to 2.1 is requested, the context returned may implement any version no less than that requested and no greater than 2.1. If version 3.0 is requested, the context returned must implement exactly version 3.0. Versioning behavior once GL versions beyond 3.0 are defined will be defined by an amendment to the OpenGL specification to define dependencies on such GL versions.#$ and #%8 will return the actual version supported by a context.The default context version is (1, 0), which will typically return an OpenGL 2.1 context, if one is available.GLUT( freeglut only6) Controls the set of flags for the rendering context.GLUT( freeglut only9) Controls the set of profiles for the rendering context.GLUTThe program name.GLUTThe command line argumentsGLUTNon-GLUT command line argumentsPQRSTUVWdefghijklmnopqrstuvwxyz{|}~uvwxyz{|}~PQRSTUVWrstopqjklmnghidef (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone2GLUTThe refresh rate of the screen, measured in Hertz (e.g. 60, 75, 100, ...)GLUTThe color depth of the screen, measured in bits (e.g. 8, 16, 24, 32, ...)GLUT$A single capability description for .GLUTCapabilities for GLUT(Width of the screen resolution in pixelsGLUT)Height of the screen resolution in pixelsGLUT!Color depth of the screen in bitsGLUTRefresh rate in HertzGLUTMatch the Nth frame buffer configuration compatible with the given capabilities (numbering starts at 1)GLUT Controls the  game mode to be used when  is called. It is described by a list of zero or more capability descriptions, which are translated into a set of criteria used to select the appropriate screen configuration. The criteria are matched in strict left to right order of precdence. That is, the first specified criterion (leftmost) takes precedence over the later criteria for non-exact criteria (&, ', etc.). Exact criteria ((, )4) must match exactly so precedence is not relevant.;To determine which configuration will actually be tried by  (if any), use .4Note that even for game mode the current values of *or + will determine which buffers are available, if double buffering is used or not, etc.GLUTEnter  game mode, trying to change resolution, refresh rate, etc., as specified by the current value of . An identifier for the game mode window and a flag, indicating if the display mode actually changed, are returned. The game mode window is made the current window. Re-entering  game mode is allowed, the previous game mode window gets destroyed by this, and a new one is created.GLUTLeave  game mode, restoring the old display mode and destroying the game mode window.GLUTReturn 4 the mode which would be tried by the next call to  . Returns 0 if the mode requested by the current value of  is not possible, in which case  would simply create a full screen window using the current mode.GLUT Contains  when the  game mode is active,  otherwise. (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneBGLUT/Controls the color index colormap entry of the current window's logical colormap for the  layer in use. The  layer in use of the current window should be a color index window. The color index should be zero or greater and less than the total number of colormap entries for the window (see :) and different from an overlay's transparent index (see ).If the  layer in use's colormap was copied by reference, setting a colormap entry will force the duplication of the colormap.GLUTCopy (lazily if possible to promote sharing) the logical colormap from a specified window to the current window's  layer in use. The copy will be from the normal plane to the normal plane; or from the overlay to the overlay (never across different layers). Once a colormap has been copied, avoid setting cells in the colormap via  since that will force an actual copy of the colormap if it was previously copied by reference. % should only be called when both the current window3 and the specified window are color index windows.GLUT6Contains the number of entries in the colormap of the current window#'s current layer (0 in RGBA mode).GLUT;Contains the transparent color index of the overlay of the current window or -1 if no overlay is in use.(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneI-GLUT*The different cursor images GLUT supports.GLUT#Arrow pointing up and to the right.GLUT"Arrow pointing up and to the left.GLUTPointing hand.GLUTSkull & cross bones.GLUTQuestion mark.GLUTArrows rotating in a circle.GLUT Spray can.GLUT Wrist watch.GLUT Insertion point cursor for text.GLUTSimple cross-hair.GLUT"Bi-directional pointing up & down.GLUT%Bi-directional pointing left & right.GLUTArrow pointing to top side.GLUTArrow pointing to bottom side.GLUTArrow pointing to left side.GLUTArrow pointing to right side.GLUT"Arrow pointing to top-left corner.GLUT#Arrow pointing to top-right corner.GLUT%Arrow pointing to bottom-left corner.GLUT&Arrow pointing to bottom-right corner.GLUTUse parent's cursor.GLUTInvisible cursor.GLUT6Full-screen cross-hair cursor (if possible, otherwise ).GLUTThe display status of a window.GLUTCreate a top-level window. The given name will be provided to the window system as the window's name. The intent is that the window system will label the window with the name.Implicitly, the current window% is set to the newly created window.X Implementation Notes: The proper X Inter-Client Communication Conventions Manual (ICCCM) top-level properties are established. The  WM_COMMAND property that lists the command line used to invoke the GLUT program is only established for the first window created.GLUTCreate a subwindow of the identified window with the given relative position and size. Implicitly, the current window is set to the newly created subwindow. Subwindows can be nested arbitrarily deep.GLUT Contains the current window's parent. If the current window is a top-level window,  is returned.GLUT&Contains the number of subwindows the current window) has, not counting children of children.GLUTDestroy the specified window and the window's associated OpenGL context, logical colormap (if the window is color index), and overlay and related state (if an overlay has been established). Any subwindows of the destroyed window are also destroyed by #. If the specified window was the current window, the current window becomes invalid ( will contain ).GLUT Controls the current window . It does not affect the  layer in use% for the window; this is done using  , . Contains ' if no windows exist or the previously current window was destroyed. Setting the current window to  is a no-op.GLUT.Mark the normal plane of given window (or the current window, if none is supplied) as needing to be redisplayed. The next iteration through , the window's display callback will be called to redisplay the window's normal plane. Multiple calls to  before the next display callback opportunity generates only a single redisplay callback.  may be called within a window's display or overlay display callback to re-mark that window for redisplay.Logically, normal plane damage notification for a window is treated as a  on the damaged window. Unlike damage reported by the window system,  will not5 set to true the normal plane's damaged status (see  ). Also, see  -.GLUTMark the normal plane of the given window as needing to be redisplayed, otherwise the same as .The advantage of this routine is that it saves the cost of using  (entailing an expensive OpenGL context switch), which is particularly useful when multiple windows need redisplays posted at the same time.Perform a buffer swap on the  layer in use for the current window. Specifically, 2 promotes the contents of the back buffer of the  layer in use of the current window to become the contents of the front buffer. The contents of the back buffer then become undefined. The update typically takes place during the vertical retrace of the monitor, rather than immediately after  is called. An implicit ./ is done by  before it returns. Subsequent OpenGL commands can be issued immediately after calling ?, but are not executed until the buffer exchange is completed.If the  layer in use is not double buffered,  has no effect.GLUTControls the position of the current window(. For top-level windows, parameters of  are pixel offsets from the screen origin. For subwindows, the parameters are pixel offsets from the window's parent window origin.*In the case of top-level windows, setting  is considered only a request for positioning the window. The window system is free to apply its own policies to top-level window placement. The intent is that top-level windows should be repositioned according to the value of .GLUTControls the size of the current window. The parameters of  are size extents in pixels. The width and height must be positive values.*In the case of top-level windows, setting  is considered only a request for sizing the window. The window system is free to apply its own policies to top-level window sizing. The intent is that top-level windows should be reshaped according to the value of . Whether a reshape actually takes effect and, if so, the reshaped dimensions are reported to the program by a reshape callback.GLUTRequest that the current window be made full screen. The exact semantics of what full screen means may vary by window system. The intent is to make the window as large as possible and disable any window decorations or borders added the window system. The window width and height are not guaranteed to be the same as the screen width and height, but that is the intent of making a window full screen.. is defined to work only on top-level windows.X Implementation Notes: In the X implementation of GLUT, full screen is implemented by sizing and positioning the window to cover the entire screen and posting the _MOTIF_WM_HINTS property on the window requesting absolutely no decorations. Non-Motif window managers may not respond to _MOTIF_WM_HINTS.GLUT( freeglut only/) Toggle between windowed and full screen mode.GLUT( freeglut only) If we are in full screen mode, resize the current window back to its original size.GLUT!Change the stacking order of the current window) relative to its siblings (lowering it).GLUT!Change the stacking order of the current window) relative to its siblings, bringing the current window closer to the top.GLUT#Controls the display status of the current window.Note that the effect of showing, hiding, and iconifying windows does not take place immediately. Instead the requests are saved for execution upon return to the GLUT event loop. Subsequent show, hide, or iconification requests on a window replace the previously saved request for that window. The effect of hiding, showing, or iconifying top-level windows is subject to the window system's policy for displaying windows. Subwindows can't be iconified.GLUT!Controls the window title of the current top-level window.GLUTControls the icon title of the current top-level window.GLUTChange the cursor image of the current window. Each call requests the window system change the cursor appropriately. The cursor image when a window is created is . The exact cursor images used are implementation dependent. The intent is for the image to convey the meaning of the cursor name. For a top-level window, ( uses the default window system cursor.X Implementation Notes: GLUT for X uses SGI's _SGI_CROSSHAIR_CURSOR convention to access a full-screen cross-hair cursor if possible.GLUTSetting  warps the window system's pointer to a new location relative to the origin of the current window by the specified pixel offset, which may be negative. The warp is done immediately.If the pointer would be warped outside the screen's frame buffer region, the location will be clamped to the nearest screen edge. The window system is allowed to further constrain the pointer's location in window system dependent ways.Good advice from Xlib's  XWarpPointer man page: "There is seldom any reason for calling this function. The pointer should normally be left to the user."GLUTThe window nameGLUT+The identifier for the newly created windowGLUT,Identifier of the subwindow's parent window.GLUTWindow position in pixels relative to parent window's origin.GLUTWindow size in pixelsGLUT.The identifier for the newly created subwindow1X1X (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneܯ&GLUT:The a rate at which a joystick is polled (in milliseconds)GLUTNumber of axes of a joystickGLUT(Number of dials of a dial and button boxGLUT$Number of buttons of an input deviceGLUT#Number of samples for multisamplingGLUTBit depth of a bufferGLUT Contains  when the current layer of the current window is in RGBA mode,  means color index mode.GLUTContains the number of red, green, blue, and alpha bits in the color buffer of the current window's' current layer (0 in color index mode).GLUTContains the total number of bits in the color buffer of the /current window's/ current layer. For an RGBA layer, this is the sum of the red, green, blue, and alpha bits. For an color index layer, this is the number of bits of the color indexes.GLUT Contains  when the current layer of the current window is double buffered,  otherwise.GLUT Contains  when the current layer of the current window is stereo,  otherwise.GLUTContains the number of red, green, blue, and alpha bits in the accumulation buffer of the current window's' current layer (0 in color index mode).GLUT7Contains the number of bits in the depth buffer of the current window's current layer.GLUTContains the number of bits in the stencil buffer of the /current window's/ current layer.GLUT9Contains the number of samples for multisampling for the current window.GLUTContains the window system dependent format ID for the current layer of the current window. On X11 GLUT implementations, this is the X visual ID. On Win32 GLUT implementations, this is the Win32 Pixel Format Descriptor number. This value is returned for debugging, benchmarking, and testing ease.GLUT( freeglut only ) Contains  if the current window is in full screen mode,  otherwise.GLUT( freeglut only) Controls if vectors representing the normals should be drawn, too, when objects are drawn.GLUT( freeglut only) If  and  both contain , the fixed function pipeline is used to draw objects. Otherwise VBOs are used and the coordinates are passed via ' this attribute location (for a vec3).GLUT( freeglut only) If  and  both contain , the fixed function pipeline is used to draw objects. Otherwise VBOs are used and the normals are passed via ' this attribute location (for a vec3).GLUT( freeglut only4) If VBOs are used to draw objects (controlled via  and +), the texture coordinates are passed via & this attribute location (for a vec2).GLUT+Contains the number of milliseconds since 0 was called.GLUT Contains  if the given plane of the current window has been damaged (by window system activity) since the last display callback was triggered. Calling  or ` will not set this .GLUT!The size of the screen in pixels.GLUT&The size of the screen in millimeters.GLUT Contains  if a keyboard is present,  otherwise.GLUT Contains / the number of buttons of an attached mouse or  if there is none.GLUT Contains 4 the number of buttons of the attached Spaceball or  if there is none.GLUT Contains  the number of dials and buttons of an attached dial & button box or  if there is none.GLUT Contains 0 the number of buttons of an attached tablet or  if there is none.GLUT Contains  the number of buttons of an attached joystick, the number of joystick axes, and the rate at which the joystick is polled. Contains " if there is no joystick attached.GLUT( freeglut only) Contains a list of the number of auxiliary buffers supported, in increasing order.GLUT( freeglut only) Contains a list of the number of samples per pixel supported for multisampling, in increasing order.GLUT)Contains version of GLUT in the form of flavour major.minor. patchlevel, where flavour is one of GLUT, freeglut or OpenGLUT.GLUT( freeglut only) Contains the thickness of the sizing border around the perimeter of a window that can be resized, in pixels.GLUT( freeglut only) Contains the height of the header/caption area of a window in pixels.GLUT(freeglut on X11 only) Controls if all but the last motion event should be discarded.GLUT( freeglut only ) Contains % if GLUT has been initialized with 0 or 1+ has and not yet been de-initialized with 2 . Contains  otherwise.&&3(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneݳ$ (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneGLUTA single item within a menu can either be a plain menu entry or a sub-menu entry, allowing for arbitrarily deep nested menus.GLUTA plain menu entry with an associated callback, which is triggered when the user selects the entryGLUTA sub-menu, which is cascaded when the user selects the entry, allowing sub-menu entries to be selectedGLUTA menu is simply a list of menu items, possibly with an associated font.GLUT!Create a new pop-up menu for the current window, attaching it to the given mouse button. A previously attached menu (if any), is detached before and won't receive callbacks anymore.It is illegal to call 1 while any (sub-)menu is in use, i.e. popped up.X Implementation Notes: If available, GLUT for X will take advantage of overlay planes for implementing pop-up menus. The use of overlay planes can eliminate display callbacks when pop-up menus are deactivated. The SERVER_OVERLAY_VISUALS convention is used to determine if overlay visuals are available.GLUT)Contains the number of menu items in the  current menu.  (c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNoneGLUTA multi-touch variant of .GLUTA multi-touch variant of .GLUTA multi-touch variant of .GLUTA description where the multi-touch event is coming from, the freeglut specs are very vague about the actual semantics. It contains the device ID and/or the cursor/finger ID.GLUTA joystick callbackGLUTAbsolute joystick position, with coordinates normalized to be in the range of -1000 to 1000 inclusive. The signs of the three axes mean the following:!negative = left, positive = right*negative = towards player, positive = away:if available (e.g. rudder): negative = down, positive = upGLUT!The state of the joystick buttonsGLUTA tablet callbackGLUTThe table state has changed.GLUTAbsolute tablet position, with coordinates normalized to be in the range of 0 to 2000 inclusiveGLUTA dial & button box callbackGLUT(The dial & button box state has changed.GLUT6The index of a specific dial of a dial and button box.GLUTA SpaceballButton callbackGLUT'The state of the Spaceball has changed.GLUT3The index of a specific buttons of an input device.GLUTRotation of the Spaceball along one axis, normalized to be in the range of -1800 .. +1800 inclusiveGLUTTranslation of the Spaceball along one axis, normalized to be in the range of -1000 to +1000 inclusiveGLUTAn enter/leave callbackGLUT/The relation between the mouse pointer and the current window has changed.GLUTThe mouse pointer has left the current window.GLUT"The mouse pointer has entered the current window.GLUTA motion callbackGLUTA keyboard/mouse callbackGLUTA generalized view of keysGLUT#The state of the keyboard modifiersGLUTA mouse callbackGLUT$The current state of a key or buttonGLUTA special key callbackGLUT Special keysGLUTYou should actually never encounter this value, it is just here as a safeguard against future changes in the native GLUT library.GLUTA keyboard callbackGLUTAn application status callbackGLUTThe application status of the current windowGLUTAn initialize context callbackGLUTA window close callbackGLUTA window state callbackGLUTThe window state of the current windowGLUTThe current window is unmapped.GLUTThe current window is unobscured.GLUTThe current window is partially obscured.GLUTThe current window is fully obscured.GLUTA visibility callbackGLUTThe visibility state of the current windowGLUTNo part of the current window is visible, i.e., until the window's visibility changes, all further rendering to the window is discarded.GLUTThe current window is totally or partially visible. GLUT considers a window visible if any pixel of the window is visible or any pixel of any descendant window is visible on the screen.GLUTA position callbackGLUTA reshape callbackGLUTA display callbackGLUT&Controls the display callback for the current window. When GLUT determines that the normal plane for the window needs to be redisplayed, the display callback for the window is called. Before the callback, the current window is set to the window needing to be redisplayed and (if no overlay display callback is registered) the  layer in use is set to the normal plane. The entire normal plane region should be redisplayed in response to the callback (this includes ancillary buffers if your program depends on their state).GLUT determines when the display callback should be triggered based on the window's redisplay state. The redisplay state for a window can be either set explicitly by calling  or implicitly as the result of window damage reported by the window system. Multiple posted redisplays for a window are coalesced by GLUT to minimize the number of display callbacks called.When an overlay is established for a window, but there is no overlay display callback registered, the display callback is used for redisplaying both the overlay and normal plane (that is, it will be called if either the redisplay state or overlay redisplay state is set). In this case, the  layer in use= is not implicitly changed on entry to the display callback.See  to understand how distinct callbacks for the overlay and normal plane of a window may be established.When a window is created, no display callback exists for the window. It is the responsibility of the programmer to install a display callback for the window before the window is shown. A display callback must be registered for any window that is shown. If a window becomes displayed without a display callback being registered, a fatal error occurs. There is no way to "deregister" a display callback (though another callback routine can always be registered).Upon return from the display callback, the normal damaged state of the window (see ) is cleared. If there is no overlay display callback registered the overlay damaged state of the window (see ) is also cleared.GLUT.Controls the overlay display callback for the current window. The overlay display callback is functionally the same as the window's display callback except that the overlay display callback is used to redisplay the window's overlay.When GLUT determines that the overlay plane for the window needs to be redisplayed, the overlay display callback for the window is called. Before the callback, the current window9 is set to the window needing to be redisplayed and the  layer in use is set to the overlay. The entire overlay region should be redisplayed in response to the callback (this includes ancillary buffers if your program depends on their state).GLUT determines when the overlay display callback should be triggered based on the window's overlay redisplay state. The overlay redisplay state for a window can be either set explicitly by calling  - or implicitly as the result of window damage reported by the window system. Multiple posted overlay redisplays for a window are coalesced by GLUT to minimize the number of overlay display callbacks called.Upon return from the overlay display callback, the overlay damaged state of the window (see  ) is cleared.Initially there is no overlay display callback registered when an overlay is established. See  to understand how the display callback alone is used if an overlay display callback is not registered.GLUT&Controls the reshape callback for the current window. The reshape callback is triggered when a window is reshaped. A reshape callback is also triggered immediately before a window's first display callback after a window is created or whenever an overlay for the window is established. The parameter of the callback specifies the new window size in pixels. Before the callback, the current window- is set to the window that has been reshaped.8If a reshape callback is not registered for a window or  is set to  (to deregister a previously registered callback), the default reshape callback is used. This default callback will simply call 4 (5 0 0) (6 width height) 7on the normal plane (and on the overlay if one exists).If an overlay is established for the window, a single reshape callback is generated. It is the callback's responsibility to update both the normal plane and overlay for the window (changing the layer in use as necessary).When a top-level window is reshaped, subwindows are not reshaped. It is up to the GLUT program to manage the size and positions of subwindows within a top-level window. Still, reshape callbacks will be triggered for subwindows when their size is changed using 7.GLUT( freeglut only)) Controls the position callback for the current window. The position callback for a window is called when the position of a window changes.GLUT)Controls the visibility callback for the current window. The visibility callback for a window is called when the visibility of a window changes.If the visibility callback for a window is disabled and later re-enabled, the visibility status of the window is undefined; any change in window visibility will be reported, that is if you disable a visibility callback and re-enable the callback, you are guaranteed the next visibility change will be reported.Note that you can either use  or , but not both, because the former is implemented via the latter.GLUT,Controls the window state callback for the current window. The window state callback for a window is called when the window state of a window changes.If the window state callback for a window is disabled and later re-enabled, the window state state of the window is undefined; any change in the window state will be reported, that is if you disable a window state callback and re-enable the callback, you are guaranteed the next window state change will be reported.Note that you can either use  or , but not both, because the former is implemented via the latter.GLUT+Controls the window close callback for the current window.GLUT( freeglut only) Controls the initialize context callback for the /current window/.GLUT1Controls the application status callback for the current window.GLUT'Controls the keyboard callback for the current window0. This is activated only when a key is pressed.GLUT'Controls the keyboard callback for the current window1. This is activated only when a key is released.GLUT*Controls the special key callback for the current window8. This is activated only when a special key is pressed.GLUT*Controls the special key callback for the current window9. This is activated only when a special key is released.GLUT$Controls the mouse callback for the current window.GLUT-Controls the keyboard/mouse callback for the current window. The keyboard/mouse callback for a window is called when the state of a key or mouse button changes. The callback parameters indicate the new state of the key/button, the state of the keyboard modifiers, and the mouse location in window relative coordinates.Note that this is a convenience function that should not ordinarily be used in conjunction with , , , , or .GLUT( freeglut only-) Controls the mouse wheel callback for the current window. The mouse wheel callback for a window is called when a mouse wheel is used and the wheel number is greater than or equal to .GLUT%Controls the motion callback for the current window. The motion callback for a window is called when the mouse moves within the window while one or more mouse buttons are pressed. The callback parameter indicates the mouse location in window relative coordinates.GLUT-Controls the passive motion callback for the current window. The passive motion callback for a window is called when the mouse moves within the window while no mouse buttons are pressed. The callback parameter indicates the mouse location in window relative coordinates.GLUT0Controls the mouse enter/leave callback for the current window. Note that some window systems may not generate accurate enter/leave callbacks.X Implementation Notes: An X implementation of GLUT should generate accurate enter/leave callbacks.GLUT(Controls the Spaceball callback for the current window. The Spaceball callback for a window is called when the window has Spaceball input focus (normally, when the mouse is in the window) and the user generates Spaceball translations, rotations, or button presses. The number of available Spaceball buttons can be determined with .Registering a Spaceball callback when a Spaceball device is not available has no effect and is not an error. In this case, no Spaceball callbacks will be generated.GLUT0Controls the dial & button box callback for the current window. The dial & button box button callback for a window is called when the window has dial & button box input focus (normally, when the mouse is in the window) and the user generates dial & button box button presses or dial changes. The number of available dial & button box buttons and dials can be determined with .Registering a dial & button box callback when a dial & button box device is not available is ineffectual and not an error. In this case, no dial & button box button will be generated.GLUT%Controls the tablet callback for the current window. The tablet callback for a window is called when the window has tablet input focus (normally, when the mouse is in the window) and the user generates tablet motion or button presses. The number of available tablet buttons can be determined with .Registering a tablet callback when a tablet device is not available is ineffectual and not an error. In this case, no tablet callbacks will be generated.GLUT'Controls the joystick callback for the current window. The joystick callback is called either due to polling of the joystick at the uniform timer interval specified (if > 0) or in response to an explicit call of 8.X Implementation Notes:0 Currently GLUT has no joystick support for X11.GLUT( freeglut only) A multi-touch variant of .GLUT( freeglut only) A multi-touch variant of .GLUT( freeglut only) A multi-touch variant of .GLUT( freeglut only) A multi-touch variant of .IJKLMNOIJKLMNO(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone&GLUT.Timeout for the timer callback in millisecondsGLUTControls the global menu status callback so a GLUT program can determine when a menu is in use or not. When a menu status callback is registered, it will be called with the value  when pop-up menus are in use by the user; and the callback will be called with the value  when pop-up menus are no longer in use. Additionally, the location in window coordinates of the button press that caused the menu to go into use, or the location where the menu was released (maybe outside the window). Other callbacks continue to operate (except mouse motion callbacks) when pop-up menus are in use so the menu status callback allows a program to suspend animation or other tasks when menus are in use. The cascading and unmapping of sub-menus from an initial pop-up menu does not generate menu status callbacks. There is a single menu status callback for GLUT.-When the menu status callback is called, the  current menu5 will be set to the initial pop-up menu in both the  and  cases. The current window will be set to the window from which the initial menu was popped up from, also in both cases.GLUTControls the global idle callback so a GLUT program can perform background processing tasks or continuous animation when window system events are not being received. If enabled, the idle callback is continuously called when events are not being received. The current window and  current menu will not be changed before the idle callback. Programs with multiple windows and/or menus should explicitly set the current window< and/or /current menu/ and not rely on its current setting.The amount of computation and rendering done in an idle callback should be minimized to avoid affecting the program's interactive response. In general, not more than a single frame of rendering should be done in an idle callback.GLUTRegister a one-shot timer callback to be triggered after at least the given amount of time. Multiple timer callbacks at same or differing times may be registered simultaneously. There is no support for canceling a registered callback.The number of milliseconds is a lower bound on the time before the callback is generated. GLUT attempts to deliver the timer callback as soon as possible after the expiration of the callback's time interval.  9(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone'{IONMLJK:(c) Sven Panne 2002-2018BSD3 Sven Panne stableportableNone)    !(+)*./01423567>A?@BCDEIONMLJKPWVUTSQRXYZ[\]^_`defghijnmklopqrstu~}|{zyxvw!;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop8qrstuvwxyz{|}~()'&       , -   012*+                             "7                                                 56333333333333333333333333333333333333                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   456#%#####$#####../$GLUT-2.7.0.16-7SkJpCGn2X5LndXuTVC59xGraphics.UI.GLUT.DebuggingGraphics.UI.GLUT.FontsGraphics.UI.GLUT.ObjectsGraphics.UI.GLUT.DeviceControlGraphics.UI.GLUT.Begin!Graphics.UI.GLUT.Callbacks.WindowGraphics.UI.GLUT.InitializationGraphics.UI.GLUT.WindowGraphics.UI.GLUT.OverlayGraphics.UI.GLUT.GameModeGraphics.UI.GLUT.ColormapGraphics.UI.GLUT.StateGraphics.UI.GLUT.Menu!Graphics.UI.GLUT.Callbacks.GlobalGraphics.UI.GLUT.Raw.CallbacksGraphics.UI.GLUT.Raw.FontsGraphics.UI.GLUT.Raw.FunctionsGraphics.UI.GLUT.Raw.TokensGraphics.UI.GLUT.RawGraphics.UI.GLUT.QueryUtilsGraphics.Rendering.OpenGL.GLbitmap'Graphics.Rendering.OpenGL.GL.CoordTrans translatekeyboardMouseCallbackjoystickCallbackGraphics.UI.GLUT.TypesDisplayCapabilitymainLoopdamaged postRedisplaynumColorMapEntries reportErrors createWindow*Graphics.Rendering.OpenGL.GL.StringQueries glVersion majorMinor IsGreaterThan IsLessThan IsEqualTo IsNotEqualToinitialDisplayModeinitialDisplayCapabilities layerInUsepostOverlayRedisplay(Graphics.Rendering.OpenGL.GL.FlushFinishflush initializegetArgsAndInitializeexit'Graphics.UI.GLUT.Callbacks.RegistrationviewportPositionSize windowSizeforceJoystickCallbackGraphics.UI.GLUT.CallbacksGraphics.UI.GLUT StrokeFontRoman MonoRoman BitmapFont Fixed8By13 Fixed9By15 TimesRoman10 TimesRoman24 Helvetica10 Helvetica12 Helvetica18 NumLevelsRingsSidesObjectCube Dodecahedron Icosahedron Octahedron TetrahedronRhombicDodecahedronSphere'Cone Cylinder'TorusTeapotTeacupTeaspoonSierpinskiSpongeFlavourSolid Wireframe renderObject $fEqObject $fOrdObject $fShowObject $fEqFlavour $fOrdFlavour $fShowFlavourFont renderString stringWidth fontHeight$fFontStrokeFont$fFontBitmapFontPerWindowKeyRepeatPerWindowKeyRepeatOffPerWindowKeyRepeatOnGlobalKeyRepeatGlobalKeyRepeatOffGlobalKeyRepeatOnGlobalKeyRepeatDefaultglobalKeyRepeatperWindowKeyRepeat$fEqPerWindowKeyRepeat$fOrdPerWindowKeyRepeat$fShowPerWindowKeyRepeat$fEqGlobalKeyRepeat$fOrdGlobalKeyRepeat$fShowGlobalKeyRepeatActionOnWindowCloseExitMainLoopReturnsContinueExecution mainLoopEvent leaveMainLoopactionOnWindowClose$fEqActionOnWindowClose$fOrdActionOnWindowClose$fShowActionOnWindowClose MouseButton LeftButton MiddleButton RightButtonWheelUp WheelDownAdditionalButtonRelationIsNotGreaterThan IsAtLeast IsNotLessThanWindowLayerNormalOverlay hasOverlayoverlayPossibleoverlayVisible $fEqLayer $fOrdLayer $fShowLayerContextProfile CoreProfileCompatibilityProfile ContextFlag DebugContextForwardCompatibleContextDirectRenderingForceIndirectContextAllowDirectContextTryDirectContextForceDirectContextRenderingContextCreateNewContextUseCurrentContextDisplayCapabilityDescriptionWhereWith DisplayRGBA DisplayRGB DisplayRed DisplayGreen DisplayBlue DisplayIndex DisplayBuffer DisplaySingle DisplayDouble DisplayAccA DisplayAcc DisplayAlpha DisplayDepthDisplayStencilDisplaySamples DisplayStereoDisplayLuminance DisplayAux DisplayNumDisplayConformant DisplaySlowDisplayWin32PFDDisplayXVisualDisplayXStaticGrayDisplayXGrayScaleDisplayXStaticColorDisplayXPseudoColorDisplayXTrueColorDisplayXDirectColor DisplayModeRGBAModeRGBMode IndexMode LuminanceModeWithAlphaComponentWithAccumBufferWithDepthBufferWithStencilBufferWithAuxBuffersSingleBufferedDoubleBuffered MultisamplingWithSamplesPerPixel Stereoscopic Captionless BorderlessSRGBModeinitialWindowPositioninitialWindowSizedisplayModePossiblerenderingContextdirectRenderinginitialContextVersioninitialContextFlagsinitialContextProfile$fEqContextProfile$fOrdContextProfile$fShowContextProfile$fEqContextFlag$fOrdContextFlag$fShowContextFlag$fEqDirectRendering$fOrdDirectRendering$fShowDirectRendering$fEqRenderingContext$fOrdRenderingContext$fShowRenderingContext $fEqDisplayCapabilityDescription!$fOrdDisplayCapabilityDescription"$fShowDisplayCapabilityDescription$fEqDisplayCapability$fOrdDisplayCapability$fShowDisplayCapability$fEqDisplayMode$fOrdDisplayMode$fShowDisplayMode GameModeInfo RefreshRate BitsPerPlaneGameModeCapabilityDescriptionWhere'GameModeCapability GameModeWidthGameModeHeightGameModeBitsPerPlaneGameModeRefreshRate GameModeNumgameModeCapabilities enterGameMode leaveGameMode gameModeInfogameModeActive$fEqGameModeInfo$fOrdGameModeInfo$fShowGameModeInfo!$fEqGameModeCapabilityDescription"$fOrdGameModeCapabilityDescription#$fShowGameModeCapabilityDescription$fEqGameModeCapability$fOrdGameModeCapability$fShowGameModeCapability colorMapEntry copyColormaptransparentIndexCursor RightArrow LeftArrowInfoDestroyHelpCycleSprayWaitText CrosshairUpDown LeftRightTopSide BottomSideLeftSide RightSide TopLeftCornerTopRightCornerBottomRightCornerBottomLeftCornerInheritNone FullCrosshair WindowStatusShownHidden IconifiedcreateSubWindow parentWindow numSubWindows destroyWindow currentWindow swapBufferswindowPosition fullScreenfullScreenToggleleaveFullScreen pushWindow popWindow windowStatus windowTitle iconTitlecursorpointerPosition $fEqCursor $fOrdCursor $fShowCursor$fEqWindowStatus$fOrdWindowStatus$fShowWindowStatusPollRate AxisCount DialCount ButtonCount SampleCount BufferDepthrgbargbaBufferDepthscolorBufferDepthdoubleBufferedstereoaccumBufferDepthsdepthBufferDepthstencilBufferDepth sampleCountformatIDfullScreenModegeometryVisualizeNormalsvertexAttribCoord3vertexAttribNormalvertexAttribTexCoord2 elapsedTime screenSize screenSizeMM hasKeyboardnumMouseButtonsnumSpaceballButtonsnumDialsAndButtonsnumTabletButtons joystickInfosupportedNumAuxBufferssupportedSamplesPerPixel glutVersionwindowBorderWidthwindowHeaderHeightskipStaleMotionEvents initState MenuCallbackMenuItem MenuEntrySubMenuMenu MenuWithFont attachMenu numMenuItems $fEqMenuHook $fOrdMenuHookMultiMotionCallbackMultiCrossingCallbackMultiMouseCallbackTouchIDJoystickCallbackJoystickPositionJoystickButtonsjoystickButtonAjoystickButtonBjoystickButtonCjoystickButtonDTabletCallback TabletInput TabletMotion TabletButtonTabletPositionDialAndButtonBoxCallbackDialAndButtonBoxInputDialAndButtonBoxButtonDialAndButtonBoxDial DialIndexSpaceballCallbackSpaceballInputSpaceballMotionSpaceballRotationSpaceballButton ButtonIndexCrossingCallbackCrossing WindowLeft WindowEnteredMotionCallbackMouseWheelCallbackWheelDirection WheelNumberKeyboardMouseCallbackKeyChar SpecialKey Modifiersshiftctrlalt MouseCallbackKeyStateDownUpSpecialCallbackKeyF1KeyF2KeyF3KeyF4KeyF5KeyF6KeyF7KeyF8KeyF9KeyF10KeyF11KeyF12KeyLeftKeyUpKeyRightKeyDown KeyPageUp KeyPageDownKeyHomeKeyEnd KeyInsert KeyNumLockKeyBegin KeyDelete KeyShiftL KeyShiftRKeyCtrlLKeyCtrlRKeyAltLKeyAltR KeyUnknownKeyboardCallbackAppStatusCallback AppStatusAppStatusPauseAppStatusResumeInitContextCallback CloseCallbackWindowStateCallback WindowStateUnmapped FullyRetainedPartiallyRetained FullyCoveredVisibilityCallback Visibility NotVisibleVisiblePositionCallbackReshapeCallbackDisplayCallbackdisplayCallbackoverlayDisplayCallbackreshapeCallbackpositionCallbackvisibilityCallbackwindowStateCallback closeCallbackinitContextCallbackappStatusCallbackkeyboardCallbackkeyboardUpCallbackspecialCallbackspecialUpCallback mouseCallbackmouseWheelCallbackmotionCallbackpassiveMotionCallbackcrossingCallbackspaceballCallbackdialAndButtonBoxCallbacktabletCallbackmultiMouseCallbackmultiCrossingCallbackmultiMotionCallbackmultiPassiveMotionCallback$fEqJoystickPosition$fOrdJoystickPosition$fShowJoystickPosition$fEqJoystickButtons$fOrdJoystickButtons$fShowJoystickButtons$fEqTabletInput$fOrdTabletInput$fShowTabletInput$fEqTabletPosition$fOrdTabletPosition$fShowTabletPosition$fEqDialAndButtonBoxInput$fOrdDialAndButtonBoxInput$fShowDialAndButtonBoxInput$fEqSpaceballInput$fOrdSpaceballInput$fShowSpaceballInput $fEqCrossing $fOrdCrossing$fShowCrossing$fEqKey$fOrdKey $fShowKey $fEqModifiers$fOrdModifiers$fShowModifiers $fEqKeyState $fOrdKeyState$fShowKeyState$fEqSpecialKey$fOrdSpecialKey$fShowSpecialKey $fEqAppStatus$fOrdAppStatus$fShowAppStatus$fEqWindowState$fOrdWindowState$fShowWindowState$fEqVisibility$fOrdVisibility$fShowVisibility TimerCallbackTimeout IdleCallbackMenuStatusCallback MenuUsageNotInUseInUsemenuStatusCallback idleCallbackaddTimerCallback $fEqMenuUsage$fOrdMenuUsage$fShowMenuUsageWindowStatusFunc WMCloseFuncVisibilityFunc TimerFuncTabletMotionFuncTabletButtonFunc SpecialUpFunc SpecialFuncSpaceballRotateFuncSpaceballMotionFuncSpaceballButtonFunc ReshapeFunc PositionFuncPassiveMotionFuncOverlayDisplayFuncMultiPassiveFuncMultiMotionFuncMultiEntryFuncMultiButtonFuncMouseWheelFunc MouseFunc MotionFuncMenuStatusFunc MenuStateFuncMenuFuncMenuDestroyFuncKeyboardUpFunc KeyboardFunc JoystickFuncInitContextFuncIdleFunc EntryFunc DisplayFunc DialsFunc CloseFunc ButtonBoxFunc AppStatusFuncmakeWindowStatusFuncmakeWMCloseFuncmakeVisibilityFunc makeTimerFuncmakeTabletMotionFuncmakeTabletButtonFuncmakeSpecialUpFuncmakeSpecialFuncmakeSpaceballRotateFuncmakeSpaceballMotionFuncmakeSpaceballButtonFuncmakeReshapeFuncmakePositionFuncmakePassiveMotionFuncmakeOverlayDisplayFuncmakeMultiPassiveFuncmakeMultiMotionFuncmakeMultiEntryFuncmakeMultiButtonFuncmakeMouseWheelFunc makeMouseFuncmakeMotionFuncmakeMenuStatusFuncmakeMenuStateFunc makeMenuFuncmakeMenuDestroyFuncmakeKeyboardUpFuncmakeKeyboardFuncmakeJoystickFuncmakeInitContextFunc makeIdleFunc makeEntryFuncmakeDisplayFunc makeDialsFunc makeCloseFuncmakeButtonBoxFuncmakeAppStatusFuncGLUTstrokeFontGLUTbitmapFontmarshalBitmapFontmarshalStrokeFontisKnownglutAddMenuEntryglutAddSubMenuglutAppStatusFuncglutAttachMenuglutBitmapCharacterglutBitmapHeightglutBitmapLengthglutBitmapStringglutBitmapWidthglutButtonBoxFuncglutChangeToMenuEntryglutChangeToSubMenu glutCloseFuncglutCopyColormapglutCreateMenuglutCreateSubWindowglutCreateWindowglutDestroyMenuglutDestroyWindowglutDetachMenu glutDeviceGet glutDialsFuncglutDisplayFuncglutEnterGameMode glutEntryFuncglutEstablishOverlayglutExitglutExtensionSupportedglutForceJoystickFuncglutFullScreenglutFullScreenToggleglutGameModeGetglutGameModeStringglutGet glutGetColor glutGetMenuglutGetMenuDataglutGetModeValuesglutGetModifiersglutGetProcAddress glutGetWindowglutGetWindowDataglutHideOverlayglutHideWindowglutIconifyWindow glutIdleFuncglutIgnoreKeyRepeatglutInitglutInitContextFlagsglutInitContextFuncglutInitContextProfileglutInitContextVersionglutInitDisplayModeglutInitDisplayStringglutInitWindowPositionglutInitWindowSizeglutJoystickFuncglutKeyboardFuncglutKeyboardUpFunc glutLayerGetglutLeaveFullScreenglutLeaveGameModeglutLeaveMainLoop glutMainLoopglutMainLoopEventglutMenuDestroyFuncglutMenuStateFuncglutMenuStatusFuncglutMotionFunc glutMouseFuncglutMouseWheelFuncglutMultiButtonFuncglutMultiEntryFuncglutMultiMotionFuncglutMultiPassiveFuncglutOverlayDisplayFuncglutPassiveMotionFunc glutPopWindowglutPositionFuncglutPositionWindowglutPostOverlayRedisplayglutPostRedisplayglutPostWindowOverlayRedisplayglutPostWindowRedisplayglutPushWindowglutRemoveMenuItemglutRemoveOverlayglutReportErrorsglutReshapeFuncglutReshapeWindow glutSetColor glutSetCursorglutSetIconTitleglutSetKeyRepeat glutSetMenuglutSetMenuDataglutSetMenuFont glutSetOptionglutSetVertexAttribCoord3glutSetVertexAttribNormalglutSetVertexAttribTexCoord2 glutSetWindowglutSetWindowDataglutSetWindowTitleglutSetupVideoResizingglutShowOverlayglutShowWindow glutSolidCone glutSolidCubeglutSolidCylinderglutSolidDodecahedronglutSolidIcosahedronglutSolidOctahedronglutSolidRhombicDodecahedronglutSolidSierpinskiSpongeglutSolidSphereglutSolidTeacupglutSolidTeapotglutSolidTeaspoonglutSolidTetrahedronglutSolidTorusglutSpaceballButtonFuncglutSpaceballMotionFuncglutSpaceballRotateFuncglutSpecialFuncglutSpecialUpFuncglutStopVideoResizingglutStrokeCharacterglutStrokeHeightglutStrokeLengthglutStrokeStringglutStrokeWidthglutSwapBuffersglutTabletButtonFuncglutTabletMotionFunc glutTimerFunc glutUseLayer glutVideoPanglutVideoResizeglutVideoResizeGetglutVisibilityFuncglutWMCloseFuncglutWarpPointerglutWindowStatusFunc glutWireCone glutWireCubeglutWireCylinderglutWireDodecahedronglutWireIcosahedronglutWireOctahedronglutWireRhombicDodecahedronglutWireSierpinskiSpongeglutWireSphereglutWireTeacupglutWireTeapotglutWireTeaspoonglutWireTetrahedron glutWireTorus glut_ACCUMglut_ACTION_CONTINUE_EXECUTIONglut_ACTION_EXIT glut_ACTION_GLUTMAINLOOP_RETURNSglut_ACTION_ON_WINDOW_CLOSEglut_ACTIVE_ALTglut_ACTIVE_CTRLglut_ACTIVE_SHIFTglut_ALLOW_DIRECT_CONTEXT glut_ALPHAglut_APPSTATUS_PAUSEglut_APPSTATUS_RESUMEglut_AUX glut_AUX1 glut_AUX2 glut_AUX3 glut_AUX4 glut_BLUEglut_BORDERLESSglut_CAPTIONLESSglut_CORE_PROFILEglut_COMPATIBILITY_PROFILEglut_CREATE_NEW_CONTEXTglut_CURSOR_BOTTOM_LEFT_CORNERglut_CURSOR_BOTTOM_RIGHT_CORNERglut_CURSOR_BOTTOM_SIDEglut_CURSOR_CROSSHAIRglut_CURSOR_CYCLEglut_CURSOR_DESTROYglut_CURSOR_FULL_CROSSHAIRglut_CURSOR_HELPglut_CURSOR_INFOglut_CURSOR_INHERITglut_CURSOR_LEFT_ARROWglut_CURSOR_LEFT_RIGHTglut_CURSOR_LEFT_SIDEglut_CURSOR_NONEglut_CURSOR_RIGHT_ARROWglut_CURSOR_RIGHT_SIDEglut_CURSOR_SPRAYglut_CURSOR_TEXTglut_CURSOR_TOP_LEFT_CORNERglut_CURSOR_TOP_RIGHT_CORNERglut_CURSOR_TOP_SIDEglut_CURSOR_UP_DOWNglut_CURSOR_WAIT glut_DEBUG glut_DEPTHglut_DEVICE_IGNORE_KEY_REPEATglut_DEVICE_KEY_REPEATglut_DIRECT_RENDERINGglut_DISPLAY_MODE_POSSIBLE glut_DOUBLE glut_DOWNglut_ELAPSED_TIME glut_ENTEREDglut_FORCE_DIRECT_CONTEXTglut_FORCE_INDIRECT_CONTEXTglut_FORWARD_COMPATIBLEglut_FULLY_COVEREDglut_FULLY_RETAINEDglut_FULL_SCREENglut_GAME_MODE_ACTIVEglut_GAME_MODE_DISPLAY_CHANGEDglut_GAME_MODE_HEIGHTglut_GAME_MODE_PIXEL_DEPTHglut_GAME_MODE_POSSIBLEglut_GAME_MODE_REFRESH_RATEglut_GAME_MODE_WIDTHglut_GEOMETRY_VISUALIZE_NORMALS glut_GREENglut_HAS_DIAL_AND_BUTTON_BOXglut_HAS_JOYSTICKglut_HAS_KEYBOARDglut_HAS_MOUSEglut_HAS_OVERLAYglut_HAS_SPACEBALLglut_HAS_TABLET glut_HIDDEN glut_INDEXglut_INIT_DISPLAY_MODEglut_INIT_FLAGSglut_INIT_MAJOR_VERSIONglut_INIT_MINOR_VERSIONglut_INIT_PROFILEglut_INIT_STATEglut_INIT_WINDOW_HEIGHTglut_INIT_WINDOW_WIDTHglut_INIT_WINDOW_Xglut_INIT_WINDOW_Yglut_JOYSTICK_AXESglut_JOYSTICK_BUTTONSglut_JOYSTICK_BUTTON_Aglut_JOYSTICK_BUTTON_Bglut_JOYSTICK_BUTTON_Cglut_JOYSTICK_BUTTON_Dglut_JOYSTICK_POLL_RATEglut_KEY_ALT_Lglut_KEY_ALT_Rglut_KEY_BEGINglut_KEY_CTRL_Lglut_KEY_CTRL_Rglut_KEY_DELETE glut_KEY_DOWN glut_KEY_END glut_KEY_F1 glut_KEY_F10 glut_KEY_F11 glut_KEY_F12 glut_KEY_F2 glut_KEY_F3 glut_KEY_F4 glut_KEY_F5 glut_KEY_F6 glut_KEY_F7 glut_KEY_F8 glut_KEY_F9 glut_KEY_HOMEglut_KEY_INSERT glut_KEY_LEFTglut_KEY_NUM_LOCKglut_KEY_PAGE_DOWNglut_KEY_PAGE_UPglut_KEY_REPEAT_DEFAULTglut_KEY_REPEAT_OFFglut_KEY_REPEAT_ONglut_KEY_RIGHTglut_KEY_SHIFT_Lglut_KEY_SHIFT_R glut_KEY_UPglut_LAYER_IN_USE glut_LEFTglut_LEFT_BUTTONglut_LUMINANCEglut_MENU_IN_USEglut_MENU_NOT_IN_USEglut_MENU_NUM_ITEMSglut_MIDDLE_BUTTONglut_MULTISAMPLE glut_NORMALglut_NORMAL_DAMAGEDglut_NOT_VISIBLEglut_NUM_BUTTON_BOX_BUTTONSglut_NUM_DIALSglut_NUM_MOUSE_BUTTONSglut_NUM_SPACEBALL_BUTTONSglut_NUM_TABLET_BUTTONS glut_OVERLAYglut_OVERLAY_DAMAGEDglut_OVERLAY_POSSIBLEglut_OWNS_JOYSTICKglut_PARTIALLY_RETAINEDglut_REDglut_RENDERING_CONTEXTglut_RGB glut_RGBAglut_RIGHT_BUTTONglut_SCREEN_HEIGHTglut_SCREEN_HEIGHT_MMglut_SCREEN_WIDTHglut_SCREEN_WIDTH_MM glut_SINGLEglut_SKIP_STALE_MOTION_EVENTS glut_SRGB glut_STENCIL glut_STEREOglut_TRANSPARENT_INDEXglut_TRY_DIRECT_CONTEXTglut_UPglut_USE_CURRENT_CONTEXT glut_VERSIONglut_VIDEO_RESIZE_HEIGHTglut_VIDEO_RESIZE_HEIGHT_DELTAglut_VIDEO_RESIZE_IN_USEglut_VIDEO_RESIZE_POSSIBLEglut_VIDEO_RESIZE_WIDTHglut_VIDEO_RESIZE_WIDTH_DELTAglut_VIDEO_RESIZE_Xglut_VIDEO_RESIZE_X_DELTAglut_VIDEO_RESIZE_Yglut_VIDEO_RESIZE_Y_DELTA glut_VISIBLEglut_WINDOW_ACCUM_ALPHA_SIZEglut_WINDOW_ACCUM_BLUE_SIZEglut_WINDOW_ACCUM_GREEN_SIZEglut_WINDOW_ACCUM_RED_SIZEglut_WINDOW_ALPHA_SIZEglut_WINDOW_BLUE_SIZEglut_WINDOW_BORDER_WIDTHglut_WINDOW_BUFFER_SIZEglut_WINDOW_COLORMAP_SIZEglut_WINDOW_CURSORglut_WINDOW_DEPTH_SIZEglut_WINDOW_DOUBLEBUFFERglut_WINDOW_FORMAT_IDglut_WINDOW_GREEN_SIZEglut_WINDOW_HEADER_HEIGHTglut_WINDOW_HEIGHTglut_WINDOW_NUM_CHILDRENglut_WINDOW_NUM_SAMPLESglut_WINDOW_PARENTglut_WINDOW_RED_SIZEglut_WINDOW_RGBAglut_WINDOW_STENCIL_SIZEglut_WINDOW_STEREOglut_WINDOW_WIDTH glut_WINDOW_X glut_WINDOW_YGetter simpleGetlayerGet deviceGetrelationToStringmarshalMouseButtonunmarshalMouseButtonghc-prim GHC.TypesTrueFalsebaseGHC.NumNum%OpenGL-3.0.3.0-66HBLDpNomSAMPuIS1p40X GHC.MaybeJustNothing CallbackType DisplayCBOverlayDisplayCB ReshapeCB KeyboardCB KeyboardUpCBMouseCBMotionCBPassiveMotionCB CrossingCB VisibilityCBWindowStatusCB SpecialCB SpecialUpCBSpaceballMotionCBSpaceballRotateCBSpaceballButtonCB ButtonBoxCBDialsCBTabletMotionCBTabletButtonCB JoystickCB MenuStatusCBIdleCBCloseCB MouseWheelCB PositionCB MultiEntryCB MultiMotionCB MultiButtonCBMultiPassiveCB InitContextCB AppStatusCBgetCurrentWindowregisterForCleanup setCallback)ObjectName-1.1.0.1-F4KWBMA182w1F5dlI6NchXData.ObjectName ObjectNamedeleteObjectNames isObjectNamedeleteObjectNameGeneratableObjectName genObjectNamegenObjectNames%StateVar-1.2.1-7vo3tV8mPssJqOV48TU4OF Data.StateVar HasGetterget HasUpdate$~$~! HasSetter$=GettableStateVarSettableStateVarStateVar makeStateVar mapStateVarmakeSettableStateVarmakeGettableStateVar$=!(OpenGLRaw-3.3.4.0-27sRuPWnFyzErFX0xrxKxlGraphics.GL.TypesGLVULKANPROCNVFuncGLVULKANPROCNVGLeglClientBufferEXT GLeglImageOESGLvdpauSurfaceNV GLhandleARBGLclampxGLDEBUGPROCKHRFuncGLDEBUGPROCKHRGLDEBUGPROCARBFuncGLDEBUGPROCARBGLDEBUGPROCAMDFuncGLDEBUGPROCAMDGLhalfNV GLhalfARB GLsizeiptrARB GLintptrARB GLuint64EXT GLint64EXT GLcharARBGLvoidGLDEBUGPROCFunc GLDEBUGPROCGLclampdGLdoubleGLclampfGLhalf GLbitfieldGLsync GLsizeiptrGLintptrGLenumGLsizeiGLuint64GLint64GLfixedGLuintGLintGLushortGLshortGLcharGLubyteGLbyte GLbooleanmakeGLDEBUGPROCAMDmakeGLDEBUGPROCmakeGLDEBUGPROCARBmakeGLDEBUGPROCKHR mkGLDEBUGPROCmkGLDEBUGPROCAMDmkGLDEBUGPROCARBmkGLDEBUGPROCKHRGLfloat*Graphics.Rendering.OpenGL.GLU.Tessellation tessellate triangulateextractContours TessWindingTessWindingAbsGeqTwoTessWindingNegativeTessWindingPositiveTessWindingOddTessWindingNonzeroAnnotatedVertexComplexContourComplexPolygonWeightedPropertiesCombiner Tolerance Tessellator SimpleContourPolygonContoursTriangleVertexTriangle Triangulation Primitive SimplePolygon&Graphics.Rendering.OpenGL.GLU.Quadrics renderQuadricQuadricDrawStyleSilhouetteStyle FillStyle PointStyle LineStyle QuadricNormalQuadricOrientationOutsideInsideQuadricTextureNoTextureCoordinatesGenerateTextureCoordinates QuadricStyleRadiusHeightAngleSlicesStacksLoopsQuadricPrimitive PartialDiskDiskSphereCylinder#Graphics.Rendering.OpenGL.GLU.NURBSsetDisplayMode'loadSamplingMatricessetSamplingMethodsetNURBSCulling setNURBSMode trimmingCurvepwlCurvenurbsBeginEndTrim nurbsSurfacenurbsBeginEndSurface nurbsCurvenurbsBeginEndCurvecheckForNURBSErrorwithNURBSEndCallbackwithNURBSColorCallbackwithNURBSNormalCallbackwithNURBSVertexCallbackwithNURBSBeginCallback withNURBSObjNURBSObjNURBSBeginCallbackNURBSVertexCallbackNURBSNormalCallbackNURBSColorCallbackNURBSEndCallback TrimmingPoint NURBSModeNURBSTessellator NURBSRendererSamplingMethodObjectParametricErrorObjectPathLengthDomainDistance PathLengthParametricError DisplayMode' OutlinePatchFill'OutlinePolygon(Graphics.Rendering.OpenGL.GLU.Mipmappingbuild2DMipmapsbuild1DMipmaps scaleImage$Graphics.Rendering.OpenGL.GLU.Matrix unProject4 unProjectproject pickMatrixlookAt perspectiveortho2D,Graphics.Rendering.OpenGL.GLU.Initialization gluExtensions gluVersion*Graphics.Rendering.OpenGL.GL.BufferObjectsindexedBufferSizeindexedBufferStartbindBufferRangebindBufferBaseflushMappedBufferRangemapBufferRange bufferMapped bufferAccess unmapBuffer mapBufferwithMappedBuffer bufferSubData bufferDatavertexAttribArrayBufferBindingarrayBufferBinding bindBuffer BufferObject BufferTarget UniformBufferTransformFeedbackBuffer TextureBufferShaderStorageBuffer QueryBufferPixelUnpackBufferPixelPackBufferElementArrayBufferDrawIndirectBufferDispatchIndirectBufferCopyWriteBufferCopyReadBuffer ArrayBufferAtomicCounterBuffer BufferUsage DynamicCopy DynamicRead DynamicDraw StaticCopy StaticRead StaticDraw StreamCopy StreamDraw StreamRead BufferAccess ReadWriteReadOnly WriteOnlyTransferDirectionReadFromBuffer WriteToBufferMappingFailure MappingFailedUnmappingFailedMapBufferUsage Unsychronized FlushExplicitInvalidateBufferInvalidateRangeReadWriteOffsetLength BufferIndexRangeStartIndex RangeSize BufferRangeIndexedBufferTargetIndexedUniformBufferIndexedTransformFeedbackBufferIndexedAtomicCounterBufferIndexedShaderStorageBuffer)Graphics.Rendering.OpenGL.GL.Antialiasing subpixelBits multisamplesamples sampleBuffers%Graphics.Rendering.OpenGL.GL.Clipping maxClipPlanes clipPlane ClipPlaneName%Graphics.Rendering.OpenGL.GL.ColorSumcolorSum#Graphics.Rendering.OpenGL.GL.Colors clampColor shadeModel colorMateriallightModelColorControlvertexProgramTwoSidelightModelTwoSidelightModelLocalViewerlightModelAmbient attenuation spotCutoffmaxSpotExponent spotExponent spotDirectionpositionspeculardiffuseambientmaterialColorIndexes maxShininessmaterialShininessmaterialEmissionmaterialSpecularmaterialAmbientAndDiffusematerialDiffusematerialAmbient frontFace maxLightslightlightingLightFrontFaceDirectionCWCCWLightModelColorControl SingleColorSeparateSpecularColorColorMaterialParameterAmbientAndDiffuseEmissionSpecularAmbientDiffuse ShadingModelFlatSmooth ClampTargetClampReadColorClampVertexColorClampFragmentColor ClampModeClampOffClampOn FixedOnly'Graphics.Rendering.OpenGL.GL.Evaluators autoNormal evalPoint2 evalPoint1 evalMesh2 evalMesh1mapGrid2mapGrid1map2map1maxOrderOrder MapDescriptorMap1getMap1ComponentsnewMap1 withNewMap1withMap1GLmap1Map2getMap2ComponentsnewMap2 withNewMap2withMap2GLmap2)Graphics.Rendering.OpenGL.GL.ControlPoint ControlPoint$Graphics.Rendering.OpenGL.GL.Bitmaps(Graphics.Rendering.OpenGL.GL.PerFragmentlogicOpdither blendColor blendFuncblendFuncSeparateblendEquationSeparate blendEquation blendBufferblend depthFuncactiveStencilFacestencilOpSeparate stencilOpstencilFuncSeparate stencilFunc stencilTest alphaFunc depthBoundssampleCoveragesampleAlphaToOnesampleAlphaToCoveragescissordiscardingRasterizerrasterizerDiscard StencilOpOpInvert OpDecrWrapOpDecr OpIncrWrapOpIncr OpReplaceOpZeroOpKeep BlendEquationMaxMinFuncReverseSubtract FuncSubtractLogicOpFuncAddSetNand OrInverted CopyInverted OrReverseInvertEquivNorOrXorNoop AndInvertedCopy AndReverseClearAnd,Graphics.Rendering.OpenGL.GL.Shaders.UniformactiveUniformsuniformLocationUniformLocationUniformComponentUniformuniformuniformv3Graphics.Rendering.OpenGL.GL.Shaders.ProgramObjectsgetFragDataLocationbindFragDataLocationvalidateStatus linkStatusprogramDeleteStatusprogramBinaryRetrievableHintprogramSeparableprogramInfoLogvalidateProgramcurrentProgram linkProgramattachedShaders detachShader attachShader createProgram(Graphics.Rendering.OpenGL.GL.FramebufferaccumrgbaSignedComponents accumBits depthBits stencilBitsrgbaBits stereoBuffer doubleBuffer auxBuffersinvalidateNamedFramebufferDatainvalidateFramebuffer!invalidateNamedFramebufferSubDatainvalidateSubFramebufferclearNamedFramebuffer clearBuffer clearAccum clearStencil clearDepthf clearDepth clearIndex clearColorclearstencilMaskSeparate stencilMask depthMask colorMaski colorMask indexMaskmaxDrawBuffers drawBufferinamedFramebufferDrawBuffers drawBuffersnamedFramebufferDrawBuffer drawBufferDrawBufferIndex ClearBuffer DepthBuffer StencilBuffer ColorBuffer AccumBufferClearBufferCommandClearDepthAndStencilBuffersClearStencilBufferClearDepthBufferClearColorBufferUintClearColorBufferIntClearColorBufferFloatAccumOpAddMultReturnAccumLoad%Graphics.Rendering.OpenGL.GL.PolygonspolygonOffsetFillpolygonOffsetLinepolygonOffsetPoint polygonOffset polygonModepolygonStipplecullFace polygonSmoothPolygonStipplegetPolygonStippleComponentsnewPolygonStipplewithNewPolygonStipplewithPolygonStippleGLpolygonstipple.Graphics.Rendering.OpenGL.GL.Texturing.QueriestextureDepthTypetextureLuminanceTypetextureIntensityTypetextureRGBATypestextureProxyOKtextureCompressedImageSizetextureDepthBitstextureIndexSizetextureLuminanceSizetextureIntensitySizetextureSharedSizetextureRGBASizes textureBorder textureSize3D textureSize2D textureSize1DtextureInternalFormat TextureQuery;Graphics.Rendering.OpenGL.GL.FramebufferObjects.AttachmentsframebufferTextureLayerframebufferTexture3DframebufferTexture2DframebufferTexture1DframebufferRenderbuffer7Graphics.Rendering.OpenGL.GL.FramebufferObjects.QueriesrenderbufferStencilSizerenderbufferDepthSizerenderbufferAlphaSizerenderbufferBlueSizerenderbufferGreenSizerenderbufferRedSizerenderbufferSamplesrenderbufferInternalFormatrenderbufferHeightrenderbufferWidthattachmentStencilSizeattachmentDepthSizeattachmentAlphaSizeattachmentBlueSizeattachmentGreenSizeattachmentRedSize)attachmentTextureTextureTargetCubeMapFaceattachmentTextureLevelattachmentTextureLayerattachmentObjectattachmentObjectTypeAttachmentObjectTypeRenderbufferAttachmentDefaultFramebufferAttachmentTextureAttachment,Graphics.Rendering.OpenGL.GL.PixellikeObjectPixellikeObjectGetPName StencilSize DepthSize AlphaSize GreenSizeRedSizeBlueSizePixellikeObjectTargetpixellikeObjTarParam3Graphics.Rendering.OpenGL.GL.Texturing.EnvironmentstextureUnitLODBias constantColor alphaScalergbScaleargAlphaargRGB combineAlpha combineRGBtextureFunctionTextureFunctionCombine4Combine AddUnsignedReplaceBlendModulateDecalTextureCombineFunctionDot3RGBADot3RGBSubtract Interpolate AddSigned AddUnsigned'Replace' Modulate'ArgNumArg3Arg2Arg0Arg1ArgSrc PrimaryColorConstantCrossbar CurrentUnitPrevious1Graphics.Rendering.OpenGL.GL.Texturing.ParameterstextureCompareOperatortextureCompareFailValuetextureCompareModedepthTextureModegenerateMipmaptextureLevelRangemaxTextureMaxAnisotropytextureMaxAnisotropytextureLODRangemaxTextureLODBiastextureObjectLODBiastextureBorderColortextureWrapMode textureFilter RepetitionRepeatedMirroredClamping ClampToBorder ClampToEdgeClampRepeatLODTextureCompareOperatorLequalRGequalR4Graphics.Rendering.OpenGL.GL.Texturing.SpecificationmaxIntegerSamplesmaxDepthTextureSamplesmaxColorTextureSamplesmaxSampleMaskWordsmaxArrayTextureLayersmax3DTextureSizemaxRectangleTextureSizemaxCubeMapTextureSizemaxTextureSizetexImage3DMultisampletexImage2DMultisamplecompressedTexSubImage3DcompressedTexSubImage2DcompressedTexSubImage1DgetCompressedTexImagecompressedTexImage3DcompressedTexImage2DcompressedTexImage1DcompressedTextureFormatscopyTexSubImage3DcopyTexSubImage2DcopyTexSubImage1D texSubImage3D texSubImage2D texSubImage1DcopyTexImage2DcopyTexImage1D getTexImage texImage3D texImage2D texImage1DLevelBorderTexturePosition1DTexturePosition2DTexturePosition3D TextureSize1D TextureSize2D TextureSize3DCompressedTextureFormatCompressedPixelDataSampleLocationsFlexibleSampleLocationsFixedSampleLocations6Graphics.Rendering.OpenGL.GL.PixelRectangles.HistogramhistogramLuminanceSizehistogramRGBASizesresetHistogram getHistogram histogram2Graphics.Rendering.OpenGL.GL.Texturing.Applicationtexture.Graphics.Rendering.OpenGL.GL.Texturing.ObjectsgenerateMipmap'prioritizeTexturestexturePriorityareTexturesResidenttextureResidenttextureBindingTexturePriority4Graphics.Rendering.OpenGL.GL.Texturing.TextureTargetBindableTextureTargetParameterizedTextureTargetOneDimensionalTextureTargetTwoDimensionalTextureTargetThreeDimensionalTextureTargetQueryableTextureTargetGettableTextureTargetTextureTarget1D Texture1DTextureTarget2DTextureRectangle Texture2DTexture1DArrayTextureTarget2DMultisampleTexture2DMultisampleTextureTargetCubeMapTextureCubeMapTextureTargetCubeMapFaceTextureCubeMapNegativeZTextureCubeMapPositiveZTextureCubeMapNegativeYTextureCubeMapPositiveYTextureCubeMapPositiveXTextureCubeMapNegativeXTextureTarget3DTextureCubeMapArray Texture3DTexture2DArrayTextureTarget2DMultisampleArrayTexture2DMultisampleArrayTextureTargetBufferTextureBuffer'7Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTablecolorTableIntesitySizecolorTableLuminanceSizecolorTableRGBASizescolorTableWidthcolorTableFormatcolorTableBiascolorTableScalecopyColorSubTable colorSubTablecopyColorTable getColorTable colorTablecolorTableStageColorTableStageTextureColorTableStagePostColorMatrixColorTableStagePostConvolutionColorTableStage ColorTableSharedTexturePaletteTextureColorTableTextureCubeMapColorTableTexture3DColorTableTexture2DColorTableTexture1DColorTablePostColorMatrixColorTablePostConvolutionColorTableProxyNoProxy8Graphics.Rendering.OpenGL.GL.PixelRectangles.ConvolutionconvolutionFilterBiasconvolutionFilterScaleconvolutionBorderModemaxConvolutionHeightmaxConvolutionWidthconvolutionHeightconvolutionWidthcopyConvolutionFilter2DcopyConvolutionFilter1DgetSeparableFilter2DseparableFilter2DgetConvolutionFilter2DconvolutionFilter2DgetConvolutionFilter1DconvolutionFilter1D convolutionConvolutionTarget Separable2D Convolution1D Convolution2DConvolutionBorderModeReplicateBorderReduceConstantBorder:Graphics.Rendering.OpenGL.GL.PixelRectangles.Rasterization pixelZoom drawPixels+Graphics.Rendering.OpenGL.GL.ReadCopyPixelsblitFramebuffer copyPixels readBuffer readPixels PixelCopyType CopyStencil CopyColor CopyDepth BlitBuffer DepthBuffer' ColorBuffer'StencilBuffer'textureGenMode normalize rescaleNormal maxStackDepth stackDepthunsafePreservingMatrixpreservingMatrix activeTexture depthClampfrustumortho loadIdentity multMatrixmatrix matrixModemaxViewportDims depthRange MatrixMode MatrixPaletteTexture ProjectionColor Modelview MatrixOrder ColumnMajorRowMajorMatrixgetMatrixComponents newMatrix withNewMatrix withMatrixGLmatrixPlaneTextureCoordNameTQRSTextureGenMode ReflectionMap NormalMap SphereMap EyeLinear ObjectLinear)Graphics.Rendering.OpenGL.GL.DisplayListslistBase callListscallListmaxListNestinglistMode listIndex defineNewList defineList DisplayListListModeCompileCompileAndExecuteGraphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjectsframebufferStatusbindFramebufferdefaultFramebufferObjectFramebufferStatus UnsupportedIncompleteMultiSampleIncompleteReadBufferIncompleteDrawBufferIncompleteMissingAttachmentComplete UndefinedGraphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjectFramebufferObjectGraphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjectsrenderbufferStoragerenderbufferStorageMultiSamplebindRenderbuffernoRenderbufferObjectRenderbufferSizeGraphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjectRenderbufferObject1Graphics.Rendering.OpenGL.GL.ConditionalRenderingwithConditionalRenderendConditionalRenderbeginConditionalRenderConditionalRenderModeQueryByRegionNoWaitQueryByRegionWait QueryWait QueryNoWait)Graphics.Rendering.OpenGL.GL.QueryObjects timestamptimestampQuery queryResultqueryResultAvailablequeryCounterBits currentQuery withQueryendQuery beginQuerymaxVertexStreams QueryIndex QueryTarget"TransformFeedbackPrimitivesWrittenPrimitivesGenerated TimeElapsedAnySamplesPassedConservative SamplesPassedAnySamplesPassed QueryResult(Graphics.Rendering.OpenGL.GL.QueryObject QueryObject,Graphics.Rendering.OpenGL.GL.Shaders.Attribs activeAttribsattribLocation4Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries programBinaryprogramBinaryFormatsProgramBinaryFormat ProgramBinary.Graphics.Rendering.OpenGL.GL.TransformFeedbacktransformFeedbackVaryingstransformFeedbackBufferModesetTransformFeedbackVaryings&maxTransformFeedbackSeparateComponents)maxTransformFeedbackInterleavedComponents#maxTransformFeedbackSeparateAttribs$unmarshalTransformFeedbackBufferMode"marshalTransformFeedbackBufferModeendTransformFeedbackbeginTransformFeedbackTransformFeedbackBufferModeSeperateAttribsInterleavedAttribsSeparateAttribs.Graphics.Rendering.OpenGL.GL.Shaders.Variables VariableTypeUnsignedIntSampler2DArrayUnsignedIntSampler1DArrayUnsignedIntSamplerCubeUnsignedIntSampler3DUnsignedIntSampler2DUnsignedIntSampler1DIntSampler2DArrayIntSampler1DArrayIntSamplerCube IntSampler3D IntSampler2D IntSampler1DSampler2DRectShadow Sampler2DRectSamplerCubeShadowSampler2DArrayShadowSampler1DArrayShadowSampler2DArraySampler1DArraySampler2DShadowSampler1DShadow SamplerCube Sampler3D Sampler2D Sampler1D FloatMat4x3 FloatMat4x2 FloatMat3x4 FloatMat3x2 FloatMat2x4 FloatMat2x3 FloatMat4 FloatMat3 FloatMat2BoolVec4BoolVec3BoolVec2UnsignedIntVec4UnsignedIntVec3UnsignedIntVec2 UnsignedInt'IntVec4IntVec3IntVec2Int' FloatVec4 FloatVec3 FloatVec2BoolFloat',Graphics.Rendering.OpenGL.GL.Shaders.ProgramProgram3Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries shaderBinaryshaderBinaryFormatsShaderBinaryFormat ShaderBinary2Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjectsshaderPrecisionFormat shaderInfoLog compileStatusshaderDeleteStatus shaderTypereleaseShaderCompiler compileShader shaderSourceshaderSourceBS createShadershaderCompiler ShaderType ComputeShaderFragmentShaderGeometryShaderTessEvaluationShader VertexShaderTessControlShader PrecisionType+Graphics.Rendering.OpenGL.GL.Shaders.ShaderShader(Graphics.Rendering.OpenGL.GL.SyncObjects syncStatusmaxServerWaitTimeoutwaitSyncclientWaitSyncsyncGpuCommandsComplete SyncObject WaitTimeoutWaitFlagSyncFlushCommands WaitResult WaitFailedConditionSatisfiedAlreadySignaledTimeoutExpired SyncStatus UnsignaledSignaled4Graphics.Rendering.OpenGL.GL.Texturing.TextureObject TextureObject/Graphics.Rendering.OpenGL.GL.VertexArrayObjectsbindVertexArrayObjectVertexArrayObject(Graphics.Rendering.OpenGL.GL.DebugOutputdebugOutputSynchronousmaxDebugGroupStackDepthwithDebugGroup popDebugGrouppushDebugGroupdebugMessageInsertdebugMessageControldebugLoggedMessagesmaxDebugLoggedMessagesdebugMessageCallbackmaxDebugMessageLength debugOutput DebugMessage DebugSourceDebugSourceOtherDebugSourceApplicationDebugSourceThirdPartyDebugSourceWindowSystemDebugSourceAPIDebugSourceShaderCompiler DebugTypeDebugTypeOtherDebugTypePopGroupDebugTypePushGroupDebugTypeMarkerDebugTypePortabilityDebugTypePerformanceDebugTypeUndefinedBehaviorDebugTypeErrorDebugTypeDeprecatedBehaviorDebugMessageID DebugSeverityDebugSeverityNotificationDebugSeverityLowDebugSeverityHighDebugSeverityMedium MessageGroupMessageGroupWithIDs DebugGroup CanBeLabeled objectLabel Graphics.Rendering.OpenGL.GL.FogfogDistanceMode fogCoordSrcfogIndexfogColorfogModefogFogModeExp2ExpLinear FogCoordSrcFogCoord FragmentDepthFogDistanceModeEyePlaneAbsolute EyeRadialEyePlaneSigned)Graphics.Rendering.OpenGL.GL.LineSegmentssmoothLineWidthGranularitysmoothLineWidthRangealiasedLineWidthRange lineSmooth lineStipple lineWidth3Graphics.Rendering.OpenGL.GL.PixelRectangles.Minmax resetMinmax getMinmaxminmax:Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransferrgbaBias rgbaScale depthBias depthScale indexOffset indexShift mapStencilmapColorPixelTransferStagePostColorMatrixPreConvolutionPostConvolution#Graphics.Rendering.OpenGL.GL.PointssmoothPointSizeGranularitysmoothPointSizeRangealiasedPointSizeRange pointSprite pointSmoothpointFadeThresholdSizepointDistanceAttenuationpointSizeRangevertexProgramPointSize pointSize&Graphics.Rendering.OpenGL.GL.RasterPosrasterPositionUnclippedcurrentRasterPositionValidcurrentRasterTexCoordscurrentRasterIndexcurrentRasterSecondaryColorcurrentRasterColorcurrentRasterDistancecurrentRasterPositionRasterPosComponent RasterPos rasterPos rasterPosvWindowPosComponent WindowPos windowPos windowPosv)Graphics.Rendering.OpenGL.GL.VertexArraysvertexAttribArrayvertexAttribPointerprimitiveRestartIndexNVprimitiveRestartIndex lockArraysmaxElementsIndicesmaxElementsVerticesmultiDrawElementsBaseVertex+drawElementsInstancedBaseVertexBaseInstancedrawElementsInstancedBaseVertexdrawRangeElementsBaseVertexdrawElementsBaseVertexdrawRangeElementsmultiDrawElementsdrawElementsInstanced!drawElementsInstancedBaseInstance drawElementsmultiDrawArraysdrawArraysInstanceddrawArraysInstancedBaseInstance drawArrays arrayElementclientActiveTexture clientStateinterleavedArrays arrayPointer NumComponentsStrideVertexArrayDescriptorClientArrayTypeMatrixIndexArraySecondaryColorArray FogCoordArray EdgeFlagArrayTextureCoordArray IndexArray ColorArray VertexArray NormalArrayInterleavedArrays T4fC4fN3fV4f T2fC4fN3fV3f T2fN3fV3f T2fC3fV3f T2fC4ubV3fT4fV4fT2fV3f C4fN3fV3fN3fV3fC3fV3fC4ubV3fC4ubV2fV2fV3f ArrayIndexNumArrayIndicesNumIndexBlocks NumInstances BaseInstance BaseVertex'Graphics.Rendering.OpenGL.GL.Capability CapabilityDisabledEnabled%Graphics.Rendering.OpenGL.GL.BeginEndedgeFlagprimitiveRestartunsafeRenderPrimitiverenderPrimitive*Graphics.Rendering.OpenGL.GL.PrimitiveModemaxTessGenLevelpatchDefaultInnerLevelpatchDefaultOuterLevelmaxPatchVertices patchVertices PrimitiveModePatches QuadStripQuads TriangleFan TriangleStrip Triangles LineStripLineLoopLinesPolygonPointscontextProfileshadingLanguageVersionextensionSupported glExtensionsrenderervendorContextProfile' CoreProfile'CompatibilityProfile''Graphics.Rendering.OpenGL.GL.ByteString unpackUtf8packUtf8#Graphics.Rendering.OpenGL.GL.DomainDomain evalCoord2v evalCoord2 evalCoord1 evalCoord1v"Graphics.Rendering.OpenGL.GL.Hintshint HintTarget UnpackCMYKPackCMYKTextureCompressionGenerateMipmapFog PolygonSmooth LineSmoothPerspectiveCorrection PointSmoothHintModeNicestDontCareFastest,Graphics.Rendering.OpenGL.GL.MatrixComponentMatrixComponentscalerotate5Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMappixelMapRGBAToRGBApixelMapIToRGBApixelMapmaxPixelMapTablePixelMapTargetAToABToBGToGRToRIToAIToBIToGIToRIToISToSPixelMapComponentPixelMapgetPixelMapComponents newPixelMapwithNewPixelMap withPixelMap GLpixelmap9Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage skipImages imageHeight rowAlignment skipPixelsskipRows rowLengthlsbFirst swapBytesPixelStoreDirectionPackUnpack%Graphics.Rendering.OpenGL.GL.Feedback passThroughgetFeedbackTokens FeedbackTokenPassThroughTokenCopyPixelTokenDrawPixelToken BitmapToken PolygonTokenLineResetToken PointToken LineToken VertexInfoVertex4DColorTextureVertex3DColorTexture Vertex3DColorVertex2DVertex3D ColorInfo FeedbackTypeFourDColorTextureThreeDColorTexture ThreeDColorTwoDThreeDPassThroughValue&Graphics.Rendering.OpenGL.GL.SelectionnameStackDepthmaxNameStackDepthloadNamewithName getHitRecords HitRecordName'Graphics.Rendering.OpenGL.GL.RenderMode renderMode RenderModeSelectRenderFeedback+Graphics.Rendering.OpenGL.GL.Shaders.LimitsmaxVaryingFloatsmaxVertexAttribsmaxFragmentUniformComponentsmaxVertexUniformComponentsmaxTextureCoordsmaxCombinedTextureImageUnitsmaxTextureImageUnitsmaxVertexTextureImageUnits'Graphics.Rendering.OpenGL.GL.VertexSpecmaxTextureUnitcurrentVertexAttribIucurrentVertexAttribIcurrentVertexAttrib currentIndexcurrentSecondaryColor currentColorrgbaModecurrentFogCoord currentNormalcurrentTextureCoordsVertexComponentVertexvertexvertexvTexCoordComponentTexCoordmultiTexCoordv multiTexCoordtexCoord texCoordvNormalComponentnormalnormalvFogCoordComponentfogCoord fogCoordvColorComponentcolorcolorvSecondaryColorsecondaryColorsecondaryColorvIndexComponentIndexindexindexvIntegerHandling KeepIntegralToFloatToNormalizedFloatVertexAttribComponentvertexAttrib4IvvertexAttrib3IvvertexAttrib2IvvertexAttrib1IvvertexAttrib4NvvertexAttrib3NvvertexAttrib2NvvertexAttrib1NvvertexAttrib4vvertexAttrib3vvertexAttrib2vvertexAttrib1vvertexAttrib4IvertexAttrib3IvertexAttrib2IvertexAttrib1IvertexAttrib4NvertexAttrib3NvertexAttrib2NvertexAttrib1N vertexAttrib4 vertexAttrib3 vertexAttrib1 vertexAttrib2 VertexAttrib vertexAttrib vertexAttribv'Graphics.Rendering.OpenGL.GL.QueryUtilsmaxLabelLength$Graphics.Rendering.OpenGL.GLU.Errorserrors,Graphics.Rendering.OpenGL.GLU.ErrorsInternalError ErrorCategory NURBSErrorTesselatorError TableTooLargeStackUnderflow StackOverflow OutOfMemoryInvalidFramebufferOperation InvalidEnum ContextLost InvalidValueInvalidOperation-Graphics.Rendering.OpenGL.GL.VertexAttributes TexCoord1 TexCoord2 TexCoord3 TexCoord4Normal3 FogCoord1Color3Color4Index12Graphics.Rendering.OpenGL.GL.Texturing.TextureUnit TextureUnit:Graphics.Rendering.OpenGL.GL.Texturing.PixelInternalFormatPixelInternalFormatDepth24Stencil8LuminanceAlpha16F Luminance16F Intensity16FAlpha16FLuminanceAlpha32F Luminance32F Intensity32FAlpha32FCompressedRGBS3TCDXT1CompressedRGBAS3TCDXT5CompressedRGBAS3TCDXT3CompressedRGBAS3TCDXT1 RGBA4DXT5S3TC RGBADXT5S3TC RGBA4S3TCRGBAS3TCRGB4S3TCRGBS3TCStencilIndex16 StencilIndex8 StencilIndex4 StencilIndex1 R11fG11fB10fRGB9E5Depth32fStencil8DepthComponent32fCompressedSignedRG_RGTC2CompressedRG_RGTC2CompressedSignedRedRGTC1CompressedRedRGTC1CompressedSLuminanceAlphaCompressedSLuminanceCompressedSRGBAlphaCompressedSRGBCompressedRGBA CompressedRGB CompressedRG CompressedRedCompressedIntensityCompressedLuminanceAlphaCompressedLuminanceCompressedAlphaSLuminance8Alpha8 SLuminance8RGBA32UIRGBA32IRGBA16UIRGBA16IRGBA8UIRGBA8IRGB32UIRGB32IRGB16UIRGB16IRGB8UIRGB8IRG32UIRG32IRG16UIRG16IRG8UIRG8IR32UIR32IR16UIR16IR8UIR8IRGBA32FRGB32FRG32FR32FRGBA16FRGB16FRG16FR16F SRGB8Alpha8SRGB8RGBA16RGBA12RGB10A2RGBA8RGB5A1RGBA4RGBA2RGB16RGB12RGB10RGB8RGB5RGB4R3G3B2 Intensity16 Intensity12 Intensity8 Intensity4Luminance16Alpha16Luminance12Alpha12Luminance12Alpha4Luminance8Alpha8Luminance6Alpha2Luminance4Alpha4 Luminance16 Luminance12 Luminance8 Luminance4DepthComponent32DepthComponent24DepthComponent16Alpha16Alpha12Alpha8Alpha4SLuminanceAlpha SLuminance SRGBAlphaSRGBRGBA'RGB'RG16RG8R16R8 IntensityLuminanceAlpha' Luminance'Alpha'DepthComponent'-Graphics.Rendering.OpenGL.GL.Texturing.Filter TextureFilterNearestLinear'MinificationFilterMagnificationFilter'Graphics.Rendering.OpenGL.GL.RectanglesRectrectrectv#Graphics.Rendering.OpenGL.GL.TensorVertex1Vertex2Vertex3Vertex4Vector1Vector2Vector3Vector4(Graphics.Rendering.OpenGL.GL.SavingStatepreservingClientAttribpreservingAttribServerAttributeGroupAllServerAttributesMultisampleAttributesScissorAttributesTextureAttributesListAttributesEvalAttributesHintAttributesColorBufferAttributesEnableAttributesTransformAttributesViewportAttributesStencilBufferAttributesAccumBufferAttributesDepthBufferAttributes FogAttributesLightingAttributesPixelModeAttributesPolygonStippleAttributesPolygonAttributesLineAttributesCurrentAttributesPointAttributesClientAttributeGroupAllClientAttributesPixelStoreAttributesVertexArrayAttributes4Graphics.Rendering.OpenGL.GL.QueryUtils.VertexAttribAttribLocation(Graphics.Rendering.OpenGL.GL.PolygonMode PolygonModeFillPointLine1Graphics.Rendering.OpenGL.GL.PixelRectangles.SinkSink PassThrough2Graphics.Rendering.OpenGL.GL.PixelRectangles.ResetResetNoReset&Graphics.Rendering.OpenGL.GL.PixelData PixelData(Graphics.Rendering.OpenGL.GL.PixelFormat PixelFormatYCBCR422FourTwoTwoRevAverageFourTwoTwoAverage FourTwoTwoRev FourTwoTwoCMYKACMYKBGRABGRABGR BGRAInteger BGRInteger RGBAInteger RGBInteger RGInteger AlphaInteger BlueInteger GreenInteger RedIntegerLuminanceAlpha LuminanceRGBARGBRGAlphaBlueGreenRed DepthStencilDepthComponent ColorIndex StencilIndexGraphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjectAttachmentfboaFromBufferModefboaToBufferModeFramebufferObjectAttachmentDepthStencilAttachmentStencilAttachmentColorAttachmentDepthAttachmentFramebufferAttachmentunmarshalAttachmentSafemarshalAttachmentunmarshalAttachmentGraphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTargetRenderbufferTarget RenderbufferSamples%Graphics.Rendering.OpenGL.GL.EdgeFlagEdgeFlagBeginsInteriorEdgeBeginsBoundaryEdgeGraphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferTargetFramebufferTarget FramebufferDrawFramebufferReadFramebufferfinish!Graphics.Rendering.OpenGL.GL.FaceFace FrontAndBackFrontBack%Graphics.Rendering.OpenGL.GL.DataTypeDataType FourBytes ThreeBytesTwoBytesUnsignedShort88RevUnsignedShort88Float32UnsignedInt248RevUnsignedInt5999RevUnsignedInt10f11f11fRevUnsignedInt248UnsignedInt2101010RevUnsignedInt1010102UnsignedInt8888RevUnsignedInt8888UnsignedShort1555RevUnsignedShort5551UnsignedShort4444RevUnsignedShort4444UnsignedShort565RevUnsignedShort565UnsignedByte233RevUnsignedByte332 HalfFloat UnsignedIntShort UnsignedShortByte UnsignedByteIntFloatBitmapDoubleDataRepresentationUnsignedIntRepresentationIntRepresentationFloatRepresentationSignedNormalizedRepresentation UnsignedNormalizedRepresentation/Graphics.Rendering.OpenGL.GL.ComparisonFunctionComparisonFunctionAlwaysGequalNotequalGreaterLequalEqualNeverLess'Graphics.Rendering.OpenGL.GL.BufferMode BufferModeFBOColorAttachment AuxBufferFrontAndBackBuffers RightBuffers LeftBuffers BackBuffers FrontBuffersBackRightBufferBackLeftBufferFrontRightBuffer NoBuffersFrontLeftBuffer+Graphics.Rendering.OpenGL.GL.BlendingFactorBlendingFactorSrcAlphaSaturateOneMinusConstantAlpha ConstantAlphaOneMinusConstantColor ConstantColorOneMinusDstAlphaDstAlphaOneMinusSrcAlphaSrcAlphaOneMinusDstColorDstColorOneMinusSrcColorSrcColorZeroOne