!4֮      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE"w   None >?AE+qSDLThis function returns True& if the CPU has the RDTSC instruction.SDLThis function returns True if the CPU has MMX features.SDLThis function returns True" if the CPU has MMX Ext. features.SDLThis function returns True if the CPU has 3DNow features.SDLThis function returns True% if the CPU has 3DNow! Ext. features.SDLThis function returns True if the CPU has SSE features.SDLThis function returns True if the CPU has SSE2 features.SDLThis function returns True! if the CPU has AltiVec features.(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE-0(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE.#$('%&#$('%&(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE0-..-(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE2% /1042356789 /1042356789(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AE32:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk2_^]\[ZYXVUKLMNOPQRSTW:;<=>?@ABCDEFGHIJ`efghiabcdjk(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AE7 wa`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxbrqponmlkjihgfedcstwvustwvubrqponmlkjihgfedcwa`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyx (c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableSafe >?AEESDLFInitializes SDL. This should be called before all other SDL functions.SDLqAfter SDL has been initialized with SDL_Init you may initialize uninitialized subsystems with SDL_InitSubSystem.SDLCwasInit allows you to see which SDL subsytems have been initializedSDL@Returns a string containing the last error. Nothing if no error. (c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AEG (c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AEVSDL#Updates the state of all joysticks.SDL6Counts the number of joysticks attached to the system.SDLGets joystick name. Returns Nothing on error.SDL1Gets joystick name. Throws an exception on error.SDL"Opens a joystick for use. Returns Nothing on error.SDL7Opens a joystick for use. Throws an exception on error.SDL)Determines if a joystick has been opened.SDLGets the index of an Joystick.SDL!Gets the number of joystick axes.SDL'Gets the number of joystick trackballs.SDL!Gets the number of joystick hats.SDL$Gets the number of joystick buttons.SDL"Gets the current state of an axis.SDL)Gets the current state of a joystick hat.SDL=Gets the current state of a given button on a given joystick.SDLGets relative trackball motion.SDL(Force finalization of a previous opened Joystick. Only supported with GHC. Safe >?AEW (c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AEW0SDLList of available resolutions.SDLNo modes available!SDLAll resolutions available.SDL)Swaps OpenGL framebuffers/Update Display.SDLReturns the video surface or Nothing on error.SDL:Returns the video surface, throwing an exception on error.SDL!Returns the video driver name or Nothing; on error. Notice, the driver name is limited to 256 chars.SDLHReturns the video driver name, throwing an exception on error. See also .SDLNReturns the available screen resolutions for the given format and video flags.SDLCheck to see if a particular video mode is supported. Returns the bits-per-pixel of the closest available mode with the given width, height and requested surface flags, or Nothing on error.SDLTSet up a video mode with the specified width, height and bits-per-pixel. Returns Nothing on error.SDLSame as ( except it throws an exception on error.SDL9Makes sure the given area is updated on the given screen.SDLMakes sure the given list of rectangles is updated on the given screen. The rectangles are not automatically merged or checked for overlap. In general, the programmer can use his knowledge about his particular rectangles to merge them in an efficient way, to avoid overdraw.SDLSwaps screen buffers.SDLSame as " but throws an exception on error.SDL;Sets a portion of the colormap for the given 8-bit surface.SDL3Sets the colors in the palette of an 8-bit surface.SDL(Map a RGB color value to a pixel format.SDL)Map a RGBA color value to a pixel format.SDL:Get RGB values from a pixel in the specified pixel format.SDL<Gets RGBA values from a pixel in the specified pixel format.SDLCreates an empty Surface . Returns Nothing on error.SDLCreates an empty Surface. Throws an exception on error.SDLCreates an empty SurfaceA with (r/g/b/a)mask determined from the local endian. Returns Nothing on error.SDLCreates an empty SurfaceV with (r/g/b/a)mask determined from the local endian. Throws an exception on error.SDLForces the finalization of a Surface. Only supported with GHC.SDL"Locks a surface for direct access.SDL$Unlocks a previously locked surface.SDL*Adjusts the alpha properties of a surface.SDL*Sets the clipping rectangle for a surface.SDL*Gets the clipping rectangle for a surface.SDLRun an action with a given clipping rect applied. If an exception is raised, then withClipRect will re-raise the exception (after resetting the original clipping rect).SDLBConverts a surface to the same format as another surface. Returns Nothing on error.SDLWConverts a surface to the same format as another surface. Throws an exception on error.SDLVThis function performs a fast blit from the source surface to the destination surface.SDLJThis function performs a fast fill of the given rectangle with some color.SDL2Converts a surface to the display format. Returns Nothing on error.SDLGConverts a surface to the display format. Throws an exception on error.SDL2Converts a surface to the display format. Returns Nothing on error.SDLGConverts a surface to the display format. Throws an exception on error.SDL&Sets the position of the mouse cursor.SDL8Toggle whether or not the cursor is shown on the screen.SDLReturns True- when the cursor is set to visible. See also .SDL-Sets a special SDL/OpenGL attribute. Returns False on error. SDLBSets a special SDL/OpenGL attribute. Throws an exception on error. SDL:Gets the value of a special SDL/OpenGL attribute. Returns Nothing on error. SDLOGets the value of a special SDL/OpenGL attribute. Throws an exception on error.SDL'Will use SDL_GetVideoInfo()->vfmt when Nothing.SDLWidth.SDLHeight.SDLBits-per-pixel.SDLFlags.SDLWidth.SDLHeight.SDLBits-per-pixel.SDLFlags.SDL Red value.SDL Green value.SDL Blue value.SDL Red value.SDL Green value.SDL Blue value.SDL Alpha value.SDLMouse X position.SDLMouse Y position.U    U    (c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AE SDLhA safe pointer keeps the type of the object it was created from and checks it when it's deconstructed.SDL%Typed user events ranging from 0 to 7,SDLHigh level event structure.5SDL%device index, axis index, axis value.6SDL/device index, trackball index, relative motion.7SDL&device index, hat index, hat position.8SDLdevice index, button index.9SDLdevice index, button index.:SDLWhen  Resizable is passed as a flag to  \ the user is allowed to resize the applications window. When the window is resized an  VideoResizeF is reported, with the new window width and height values. When an  VideoResizeI is recieved the window should be resized to the new dimensions using  .;SDLA  VideoExpose event is triggered when the screen has been modified outside of the application, usually by the window manager and needs to be redrawn.?SDLSLow level event structure keeping a one-to-one relation with the C event structure.RSDL>Pumps the event loop, gathering events from the input devices.SSDL2Constructs a safe pointer from an arbitrary value.TSDL@Return the type of the object the safe pointer was created from.USDL Get object from a safe pointer. Nothing on type mismatch.VSDLEGet object from a safe pointer. Throws an exception on type mismatch.WSDL#Sets keyboard repeat rate. Returns False on error.XSDL(Enables or disables unicode translation.YSDL;Returns the current state of unicode translation. See also X.ZSDL'Gets the name of an SDL virtual keysym.[SDL Gets the state of modifier keys.\SDL)Sets the internal state of modifier keys.]SDL\Retrieves the current state of the mouse. Returns (X position, Y position, pressed buttons).^SDL.Retrieve the current state of the mouse. Like ]W except that X and Y are set to the change since last call to getRelativeMouseState._SDL#Polls for currently pending events.`SDL.Pushes an event onto the event queue. Returns False on error.aSDLCPushes an event onto the event queue. Throws an exception on error.bSDL0Waits indefinitely for the next available event.cSDLHWaits indefinitely for the next available event. Blocks Haskell threads.dSDL.Enable or disable events from being processed.eSDL*Checks current state of a event. See also d.fSDL"Gets the state of the application.WSDLInitial delay. 0 to disable.SDL Interval.O !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefO,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ %&'()*+!"#$SUVTWXYZ]^[\`a_bcRdef(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisionalportableNone >?AE~SDL$Sets the window title and icon name.SDL)Sets the window title and icon name. Use Nothing to unset.SDL$Gets the window title and icon name.SDLIconify/Minimise the window.SDL!Toggles fullscreen mode. Returns False on error.SDL6Toggles fullscreen mode. Throws an exception on error.SDLGrabbing means that the mouse is confined to the application window, and nearly all keyboard input is passed directly to the application, and not interpreted by a window manager, if any.SDL"Returns the current grabbing mode. z{|}~ z{|}~(c) David Himmelstrup 2005BSD-likelemmih@gmail.com provisional portablexNone >?AE) #$&%'(-.:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefz{|}~ !"#$%&'())**+,-./01233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                ! " # $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"SDL-0.6.7.0-KyKj18lK4FOJYKMuaNOelCGraphics.UI.SDL.AudioGraphics.UI.SDL.CPUInfoGraphics.UI.SDL.ColorGraphics.UI.SDL.RectGraphics.UI.SDL.TimeGraphics.UI.SDL.UtilitiesGraphics.UI.SDL.TypesGraphics.UI.SDL.KeysymGraphics.UI.SDL.GeneralGraphics.UI.SDL.RWOpsGraphics.UI.SDL.JoystickGraphics.UI.SDL.VersionGraphics.UI.SDL.VideoGraphics.UI.SDL.Events Graphics.UI.SDL.WindowManagement setVideoModeGraphics.UI.SDL AudioFormatAudioU8AudioS8 AudioU16LSB AudioS16LSB AudioU16MSB AudioS16MSB AudioU16Sys AudioS16SysfromAudioFormat toAudioFormat$fShowAudioFormat$fEqAudioFormat$fOrdAudioFormat$fEnumAudioFormathasRDTSChasMMX hasMMXExthas3DNow has3DNowExthasSSEhasSSE2 hasAltiVecPixelColorcolorRed colorGreen colorBlue$fStorableColor$fStorablePixel $fShowPixel $fEqPixel $fOrdPixelRectrectXrectYrectWrectH$fStorableRect $fShowRect$fEqRect $fOrdRectdelaygetTicksEnumsuccpredtoEnumfromEnum enumFromTo intToBool toBitmask fromBitmaskfromCInttoCInt SurfaceFlag SWSurface HWSurfaceOpenGL ASyncBlit OpenGLBlit ResizableNoFrameHWAccel SrcColorKeyRLEAccelSrcAlphaPreAlloc AnyFormat HWPalette DoubleBuf FullscreenHat HatCenteredHatUpHatRightHatDownHatLeft HatRightUp HatRightDown HatLeftUp HatLeftDownJoystickJoystickStruct TimerIDStruct PixelFormatPixelFormatStructRWops RWopsStruct VideoInfoVideoInfoStructSurface SurfaceStructsurfaceGetPixelFormatpixelFormatGetAlphapixelFormatGetColorKeypixelFormatGetBitsPerPixelpixelFormatGetBytesPerPixelsurfaceGetWidthsurfaceGetHeightsurfaceGetFlagssurfaceGetPitchsurfaceGetPixelsvideoInfoWidthvideoInfoHeight$fEnumHatWord8 $fBoundedHat$fEnumSurfaceFlagWord32$fBoundedSurfaceFlag $fShowHat$fEqHat$fOrdHat$fEqSurfaceFlag$fOrdSurfaceFlag$fShowSurfaceFlag$fReadSurfaceFlagSDLKey SDLK_UNKNOWN SDLK_FIRSTSDLK_BACKSPACESDLK_TAB SDLK_CLEAR SDLK_RETURN SDLK_PAUSE SDLK_ESCAPE SDLK_SPACE SDLK_EXCLAIM SDLK_QUOTEDBL SDLK_HASH SDLK_DOLLARSDLK_AMPERSAND SDLK_QUOTESDLK_LEFTPARENSDLK_RIGHTPAREN SDLK_ASTERISK SDLK_PLUS SDLK_COMMA SDLK_MINUS SDLK_PERIOD SDLK_SLASHSDLK_0SDLK_1SDLK_2SDLK_3SDLK_4SDLK_5SDLK_6SDLK_7SDLK_8SDLK_9 SDLK_COLONSDLK_SEMICOLON SDLK_LESS SDLK_EQUALS SDLK_GREATER SDLK_QUESTIONSDLK_ATSDLK_LEFTBRACKETSDLK_BACKSLASHSDLK_RIGHTBRACKET SDLK_CARETSDLK_UNDERSCORESDLK_BACKQUOTESDLK_aSDLK_bSDLK_cSDLK_dSDLK_eSDLK_fSDLK_gSDLK_hSDLK_iSDLK_jSDLK_kSDLK_lSDLK_mSDLK_nSDLK_oSDLK_pSDLK_qSDLK_rSDLK_sSDLK_tSDLK_uSDLK_vSDLK_wSDLK_xSDLK_ySDLK_z SDLK_DELETE SDLK_WORLD_0 SDLK_WORLD_1 SDLK_WORLD_2 SDLK_WORLD_3 SDLK_WORLD_4 SDLK_WORLD_5 SDLK_WORLD_6 SDLK_WORLD_7 SDLK_WORLD_8 SDLK_WORLD_9 SDLK_WORLD_10 SDLK_WORLD_11 SDLK_WORLD_12 SDLK_WORLD_13 SDLK_WORLD_14 SDLK_WORLD_15 SDLK_WORLD_16 SDLK_WORLD_17 SDLK_WORLD_18 SDLK_WORLD_19 SDLK_WORLD_20 SDLK_WORLD_21 SDLK_WORLD_22 SDLK_WORLD_23 SDLK_WORLD_24 SDLK_WORLD_25 SDLK_WORLD_26 SDLK_WORLD_27 SDLK_WORLD_28 SDLK_WORLD_29 SDLK_WORLD_30 SDLK_WORLD_31 SDLK_WORLD_32 SDLK_WORLD_33 SDLK_WORLD_34 SDLK_WORLD_35 SDLK_WORLD_36 SDLK_WORLD_37 SDLK_WORLD_38 SDLK_WORLD_39 SDLK_WORLD_40 SDLK_WORLD_41 SDLK_WORLD_42 SDLK_WORLD_43 SDLK_WORLD_44 SDLK_WORLD_45 SDLK_WORLD_46 SDLK_WORLD_47 SDLK_WORLD_48 SDLK_WORLD_49 SDLK_WORLD_50 SDLK_WORLD_51 SDLK_WORLD_52 SDLK_WORLD_53 SDLK_WORLD_54 SDLK_WORLD_55 SDLK_WORLD_56 SDLK_WORLD_57 SDLK_WORLD_58 SDLK_WORLD_59 SDLK_WORLD_60 SDLK_WORLD_61 SDLK_WORLD_62 SDLK_WORLD_63 SDLK_WORLD_64 SDLK_WORLD_65 SDLK_WORLD_66 SDLK_WORLD_67 SDLK_WORLD_68 SDLK_WORLD_69 SDLK_WORLD_70 SDLK_WORLD_71 SDLK_WORLD_72 SDLK_WORLD_73 SDLK_WORLD_74 SDLK_WORLD_75 SDLK_WORLD_76 SDLK_WORLD_77 SDLK_WORLD_78 SDLK_WORLD_79 SDLK_WORLD_80 SDLK_WORLD_81 SDLK_WORLD_82 SDLK_WORLD_83 SDLK_WORLD_84 SDLK_WORLD_85 SDLK_WORLD_86 SDLK_WORLD_87 SDLK_WORLD_88 SDLK_WORLD_89 SDLK_WORLD_90 SDLK_WORLD_91 SDLK_WORLD_92 SDLK_WORLD_93 SDLK_WORLD_94 SDLK_WORLD_95SDLK_KP0SDLK_KP1SDLK_KP2SDLK_KP3SDLK_KP4SDLK_KP5SDLK_KP6SDLK_KP7SDLK_KP8SDLK_KP9SDLK_KP_PERIODSDLK_KP_DIVIDESDLK_KP_MULTIPLY SDLK_KP_MINUS SDLK_KP_PLUS SDLK_KP_ENTERSDLK_KP_EQUALSSDLK_UP SDLK_DOWN SDLK_RIGHT SDLK_LEFT SDLK_INSERT SDLK_HOMESDLK_END SDLK_PAGEUP SDLK_PAGEDOWNSDLK_F1SDLK_F2SDLK_F3SDLK_F4SDLK_F5SDLK_F6SDLK_F7SDLK_F8SDLK_F9SDLK_F10SDLK_F11SDLK_F12SDLK_F13SDLK_F14SDLK_F15 SDLK_NUMLOCK SDLK_CAPSLOCKSDLK_SCROLLOCK SDLK_RSHIFT SDLK_LSHIFT SDLK_RCTRL SDLK_LCTRL SDLK_RALT SDLK_LALT SDLK_RMETA SDLK_LMETA SDLK_LSUPER SDLK_RSUPER SDLK_MODE SDLK_COMPOSE SDLK_HELP SDLK_PRINT SDLK_SYSREQ SDLK_BREAK SDLK_MENU SDLK_POWER SDLK_EURO SDLK_UNDO SDLK_LASTModifier KeyModNoneKeyModLeftShiftKeyModRightShiftKeyModLeftCtrlKeyModRightCtrl KeyModLeftAltKeyModRightAltKeyModLeftMetaKeyModRightMeta KeyModNum KeyModCaps KeyModMode KeyModCtrl KeyModShift KeyModAlt KeyModMetaKeysymsymKey symModifiers symUnicode$fEnumModifierWord32$fBoundedModifier$fEnumSDLKeyWord32$fBoundedSDLKey$fStorableKeysym $fEqModifier $fOrdModifier$fShowModifier $fEqSDLKey $fOrdSDLKey $fShowSDLKey $fShowKeysym $fEqKeysymInitFlag InitTimer InitAudio InitVideo InitCDROM InitJoystickInitNoParachuteInitEventthreadInitEverything unwrapMaybe unwrapInt unwrapBoolinitwithInit initSubSystem quitSubSystemquitwasInitgetError failWithError$fEnumInitFlagWord32$fBoundedInitFlag $fEqInitFlag $fOrdInitFlag$fShowInitFlag$fReadInitFlagwith tryFromFilefromFile mkFinalizedRWfreeupdatecountAvailabletryNamenametryOpenopenopenedindex axesAvailableballsAvailable hatsAvailablebuttonsAvailablegetAxisgetHat getButtongetBallclose compiledFor linkedWith$fStorableSDLVersionGLValueGLAttr ListModesModes NonAvailableAnyOKToggleDisableEnableQueryPalette glSwapBufferstoToggle fromToggletryGetVideoSurfacegetVideoSurfacetryVideoDriverNamevideoDriverName getVideoInfo listModes videoModeOKtrySetVideoMode updateRect updateRectstryFlipflip setColors setPalettesetGammatryGetGammaRamp getGammaRamptrySetGammaRamp setGammaRampmapRGBmapRGBAgetRGBgetRGBAtryCreateRGBSurfacecreateRGBSurfacetryCreateRGBSurfaceEndiancreateRGBSurfaceEndiantryCreateRGBSurfaceFromcreateRGBSurfaceFrom freeSurface lockSurface unlockSurfaceloadBMPsaveBMP setColorKeysetAlpha setClipRect getClipRect withClipRecttryConvertSurfaceconvertSurface blitSurfacefillRecttryDisplayFormat displayFormattryDisplayFormatAlphadisplayFormatAlpha warpMouse showCursorqueryCursorState glRedSize glGreenSize glBlueSize glAlphaSize glBufferSizeglDoubleBuffer glDepthSize glStencilSizeglAccumRedSizeglAccumGreenSizeglAccumBlueSizeglAccumAlphaSizeglStereoglMultiSampleBuffersglMultiSampleSamplestryGLSetAttributeglSetAttributetryGLGetAttributeglGetAttributemkFinalizedSurface$fEnumPaletteInt$fBoundedPalette $fShowPalette $fEqPalette $fOrdPalette $fEqToggle $fOrdToggle $fShowToggle$fShowListModes $fEqListModes$fOrdListModes UserEventIDUID0UID1UID2UID3UID4UID5UID6UID7Focus MouseFocus InputFocusApplicationFocus MouseButton ButtonLeft ButtonMiddle ButtonRight ButtonWheelUpButtonWheelDown ButtonUnknownEventNoEventGotFocus LostFocusKeyDownKeyUp MouseMotionMouseButtonDown MouseButtonUp JoyAxisMotion JoyBallMotion JoyHatMotion JoyButtonDown JoyButtonUp VideoResize VideoExposeQuitUserUnknownSDLEvent SDLNoEventSDLActiveEvent SDLKeyDownSDLKeyUpSDLMouseMotionSDLMouseButtonDownSDLMouseButtonUpSDLJoyAxisMotionSDLJoyBallMotionSDLJoyHatMotionSDLJoyButtonDownSDLJoyButtonUpSDLQuit SDLSysWMEventSDLVideoResizeSDLVideoExpose SDLUserEvent SDLNumEvents pumpEvents toSafePtr typeOfSafePtrtryFromSafePtr fromSafePtrenableKeyRepeat enableUnicodequeryUnicodeState getKeyName getModState setModState getMouseStategetRelativeMouseState pollEvent tryPushEvent pushEvent waitEventwaitEventBlocking enableEventqueryEventState getAppState$fBoundedSDLEvent$fEnumMouseButtonWord8$fEnumFocusWord8$fBoundedFocus$fStorableEvent $fEqSDLEvent $fOrdSDLEvent$fShowSDLEvent$fShowMouseButton$fEqMouseButton$fOrdMouseButton $fShowFocus $fEqFocus $fOrdFocus$fShowUserEventID$fEqUserEventID$fEnumUserEventID $fShowEvent $fEqEventGrabMode GrabQueryGrabOffGrabOn setCaption rawSetCaption getCaption iconifyWindowtryToggleFullscreentoggleFullscreen grabInput queryGrabMode$fShowGrabMode $fEqGrabModeSafePtr