h$F=Ư      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None  GPipe-GLFW4IO Exception thrown when attempting to create a new window using GLFW hints which GPipe manages. Safe-Inferred% GPipe-GLFW4Very simple logger handle. GPipe-GLFW48An arbitrary sink into which log messages may be passed. GPipe-GLFW4$Levels of severity for log messages. GPipe-GLFW4(Emit a message to the sink specified by  if the provided Loglevel( is more severe than the configured one. GPipe-GLFW4A  which writes to the stderr stream.None:( GPipe-GLFW4,This function may be called from any thread. GPipe-GLFW4/2x This function may be called from any thread.Reading and writing of the internal timer offset is not atomic, so it needs to be externally synchronized with calls to glfwSetTime. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW4,This function may be called before glfwInit.The contexts of any remaining windows must not be current on any other thread when this function is called.5~~This function must not be called from a callback.~~7This function must only be called from the main thread. GPipe-GLFW4,This function may be called before glfwInit.7This function must only be called from the main thread. GPipe-GLFW4There are many caveats: http://www.glfw.org/docs/latest/group__window.html#ga5c336fddf2cbb5b92f65f10fb60433445~~This function must not be called from a callback.~~7This function must only be called from the main thread. GPipe-GLFW4If the context of the specified window is current on the main thread, it is detached before being destroyed.The context of the specified window must not be current on any other thread when this function is called.5~~This function must not be called from a callback.~~7This function must only be called from the main thread.Seems like it's ok to delete any of the shared contexts any time, per:  >https://khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf (Section 5.1.1) GPipe-GLFW4:2x This function must only be called from the main thread. GPipe-GLFW4,This function may be called from any thread. GPipe-GLFW4A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.This function is not called during context creation, leaving the swap interval set to whatever is the default on that platform. This is done because some swap interval extensions used by GLFW do not allow the swap interval to be reset to zero once it has been set to a non-zero value.,This function may be called from any thread. GPipe-GLFW4EGL: The context of the specified window must be current on the calling thread.,This function may be called from any thread. GPipe-GLFW4This function puts the calling thread to sleep until at least one event is available in the event queue. * ~~This function must not be called from a callback.~~ * This function must only be called from the main thread. GPipe-GLFW4This function puts the calling thread to sleep until at least one event is available in the event queue. * ~~This function must not be called from a callback.~~ * This function must only be called from the main thread. GPipe-GLFW4This function processes only those events that are already in the event queue and then returns immediately. * ~~This function must not be called from a callback.~~ * This function must only be called from the main thread. GPipe-GLFW4This function posts an empty event from the current thread to the event queue, causing glfwWaitEvents or glfwWaitEventsTimeout to return. * This function may be called from any thread. GPipe-GLFW4This function may be called from any thread. Access is not synchronized. GPipe-GLFW4This function may be called from any thread. Access is not synchronized. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW41Do not use this function to implement text input.7This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwSetInputMode * This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwGetInputMode * This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwSetInputMode * This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwGetInputMode * This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwSetInputMode * This function must only be called from the main thread. GPipe-GLFW4Implemented with glfwGetInputMode * This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread. GPipe-GLFW47This function must only be called from the main thread.*None    Safe-Inferredr GPipe-GLFW4Create an RPC handle bound to the current thread. Actions sent from the bound thread will just be run w/o doing an RPC.  Nonef GPipe-GLFW4Configuration for a new GLFW window and associated OpenGL context. GPipe-GLFW4Default window configuration for a small window on any monitor with the given title.  None- GPipe-GLFW4IO Exception thrown when application code calls a GPipe-GLFW incorrectly (eg. on the wrong thread). GPipe-GLFW44IO Exception thrown when GLFW window creation fails. GPipe-GLFW4;IO exception thrown when GLFW library initialization fails. GPipe-GLFW4Type to describe the waiting or polling style of event processing supported by GLFW.Recommended reading: Event Processing section of the GLFW  Input Guide at  7http://www.glfw.org/docs/latest/input_guide.html#events. GPipe-GLFW48Opaque handle representing a, possibly closed, internal &. You'll typically deal with GPipe's Window instead of this one. GPipe-GLFW48Opaque handle representing the initialized GLFW library.To get started quickly try  and .  import Graphics.GPipe import qualified Graphics.GPipe.Context.GLFW as GLFW runContextT GLFW.defaultHandleConfig $ do win <- newWindow (WindowFormatColorDepth RGB8 Depth16) (GLFW.defaultWindowConfig "OpenGL Graphics") -- Do GPipe things here  GPipe-GLFW4Closeable internal handle for . GPipe-GLFW47Internal handle for a GPipe-created GLFW window/context GPipe-GLFW44Specify a callback to handle errors emitted by GLFW. GPipe-GLFW4 Specify the 5 to use for automatic GLFW event processing. Set to = to disable automatic event processing (you'll need to call  or ). GPipe-GLFW4$Configuration for emitting messages. GPipe-GLFW4 Run the action with the context if the context is still open. GPipe-GLFW4&Template for "Run the action with XYZ (if the gpipe window still exists and ABC." GPipe-GLFW4 Run the action with the context handle  if the gpipe window still exists. GPipe-GLFW4#Route an effect to the main thread. GPipe-GLFW41Route an action with a result to the main thread. GPipe-GLFW4"Default GLFW handle configuration.!Print any errors that GLFW emits.:Automatically process GLFW events after every buffer swap.Log only context handling activity which represents undesired conditions. GPipe-GLFW45Process GLFW and GPipe events according to the given . Use case: Call  as part of a custom engine loop in multithreaded applications which do GPipe rendering off of the main thread. Use  for less complex applications."Must be called on the main thread.Can be called with any+ window you've created and not yet deleted.6If GPipe can't find the window you passed in, returns . GPipe-GLFW45Process GLFW and GPipe events according to the given  in a loop. Use case: Call  in multithreaded applications which do GPipe rendering off of the main thread, but which do not otherwise need additional control over the main thread. For less complex applications use automatic event processing configured via ."Must be called on the main thread.The loop will run until windowShouldClose is true for the all Windows created by the same ContextHandler , or all the Windows have been deleted.&To indicate a window should close use setWindowShouldClose in #Graphics.GPipe.Context.GLFW.Wrapped. GPipe-GLFW4'Specialize use of unwrappingGPipeWindow GPipe-GLFW42 will process events and return immediately while & will sleep until events are received. GPipe-GLFW4A  loop runs continuously while a . loop sleeps until events or user input occur.+ None04 GPipe-GLFW4Convenience funcion to run the action with the context if GPipe can locate it and it is still open. GPipe-GLFW4Convenience function to look up and unwrap the GLFW window and route the GLFW function through RPC. GPipe-GLFW4Convenience function to wrap two-argument functions taking window and something else. GPipe-GLFW4Convenience function to wrap callback setters which take window and pass it to the callback. Callbacks will be passed the GPipe window id.None0ZNone8 GPipe-GLFW4-Register or unregister a callback to receive  changes to any . GPipe-GLFW4 Poll for the  of a . GPipe-GLFW4 Polling a  for  may sometimes miss state transitions. If you use cannot use a callback to receive  changes, use 2 in combination with GLFW's sticky-keys feature:  :http://www.glfw.org/docs/latest/input_guide.html#input_key. GPipe-GLFW4Register or unregister a callback to receive character input obeying keyboard layouts and modifier effects. GPipe-GLFW4Register or unregister a callback to receive mouse location changes. Callback receives x and y position measured in screen-coordinates relative to the top left of the GLFW window. GPipe-GLFW4#Poll for the location of the mouse. GPipe-GLFW4GLFW supports setting cursor mode to support mouselook and other advanced uses of the mouse:  =<;:9876543210/.-,+*)('&%$#"! ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>=<;:9876543210/.-,+*)('&%$#"!                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                                                                                GPipe-GLFW4-2.0.0-inplace!Graphics.GPipe.Context.GLFW.Input Graphics.GPipe.Context.GLFW.MiscGraphics.GPipe.Context.GLFW"Graphics.GPipe.Context.GLFW.Window"Graphics.GPipe.Context.GLFW.Format"Graphics.GPipe.Context.GLFW.Logger!Graphics.GPipe.Context.GLFW.CallsGraphics.GPipe.Context.GLFW.RPC$Graphics.GPipe.Context.GLFW.Resource#Graphics.GPipe.Context.GLFW.Handler$Graphics.GPipe.Context.GLFW.Wrappers7GLFW-b-3.3.0.0-b60f4775f95ed8d05a52621ce1d256db543f2966Graphics.UI.GLFW destroyCursorcreateStandardCursor createCursorsetTimegetTimegetJoystickNamegetJoystickButtonsgetJoystickAxesjoystickPresentpostEmptyEventGraphics.UI.GLFW.TypesError'FormatUnavailableError'PlatformErrorError'VersionUnavailableError'ApiUnavailableError'OutOfMemoryError'InvalidValueError'InvalidEnumError'NoCurrentContextError'NotInitializedErrorWindowHint'X11InstanceNameWindowHint'X11ClassNameWindowHint'CocoaFrameName!WindowHint'CocoaGraphicsSwitching!WindowHint'CocoaRetinaFramebufferWindowHint'ScaleToMonitorWindowHint'FocusOnShowWindowHint'CenterCursor!WindowHint'TransparentFramebufferWindowHint'OpenGLProfileWindowHint'OpenGLDebugContextWindowHint'OpenGLForwardCompatWindowHint'ContextNoError!WindowHint'ContextReleaseBehaviorWindowHint'ContextRobustnessWindowHint'ContextVersionMinorWindowHint'ContextVersionMajorWindowHint'ContextCreationAPIWindowHint'ClientAPIWindowHint'AutoIconifyWindowHint'MaximizedWindowHint'FocusedWindowHint'FloatingWindowHint'sRGBCapableWindowHint'StereoWindowHint'DoubleBufferWindowHint'RefreshRateWindowHint'SamplesWindowHint'AuxBuffersWindowHint'AccumAlphaBitsWindowHint'AccumBlueBitsWindowHint'AccumGreenBitsWindowHint'AccumRedBitsWindowHint'StencilBitsWindowHint'DepthBitsWindowHint'AlphaBitsWindowHint'BlueBitsWindowHint'GreenBitsWindowHint'RedBitsWindowHint'DecoratedWindowHint'VisibleWindowHint'Resizable WindowHintKey'MenuKey'RightSuper Key'RightAltKey'RightControlKey'RightShift Key'LeftSuper Key'LeftAltKey'LeftControl Key'LeftShift Key'PadEqual Key'PadEnter Key'PadAddKey'PadSubtractKey'PadMultiply Key'PadDivideKey'PadDecimalKey'Pad9Key'Pad8Key'Pad7Key'Pad6Key'Pad5Key'Pad4Key'Pad3Key'Pad2Key'Pad1Key'Pad0Key'F25Key'F24Key'F23Key'F22Key'F21Key'F20Key'F19Key'F18Key'F17Key'F16Key'F15Key'F14Key'F13Key'F12Key'F11Key'F10Key'F9Key'F8Key'F7Key'F6Key'F5Key'F4Key'F3Key'F2Key'F1 Key'PauseKey'PrintScreen Key'NumLockKey'ScrollLock Key'CapsLockKey'EndKey'Home Key'PageDown Key'PageUpKey'UpKey'DownKey'Left Key'Right Key'Delete Key'Insert Key'BackspaceKey'Tab Key'Enter Key'Escape Key'World2 Key'World1Key'GraveAccentKey'RightBracket Key'BackslashKey'LeftBracketKey'ZKey'YKey'XKey'WKey'VKey'UKey'TKey'SKey'RKey'QKey'PKey'OKey'NKey'MKey'LKey'KKey'JKey'IKey'HKey'GKey'FKey'EKey'DKey'CKey'BKey'A Key'Equal Key'SemicolonKey'9Key'8Key'7Key'6Key'5Key'4Key'3Key'2Key'1Key'0 Key'Slash Key'Period Key'Minus Key'CommaKey'Apostrophe Key'Space Key'UnknownKeyKeyState'RepeatingKeyState'ReleasedKeyState'PressedKeyState Joystick'16 Joystick'15 Joystick'14 Joystick'13 Joystick'12 Joystick'11 Joystick'10 Joystick'9 Joystick'8 Joystick'7 Joystick'6 Joystick'5 Joystick'4 Joystick'3 Joystick'2 Joystick'1JoystickJoystickButtonState'ReleasedJoystickButtonState'PressedJoystickButtonState MouseButton'8 MouseButton'7 MouseButton'6 MouseButton'5 MouseButton'4 MouseButton'3 MouseButton'2 MouseButton'1 MouseButtonMouseButtonState'ReleasedMouseButtonState'PressedMouseButtonStateCursorState'NotInWindowCursorState'InWindow CursorStateCursorInputMode'DisabledCursorInputMode'HiddenCursorInputMode'NormalCursorInputModeStickyKeysInputMode'DisabledStickyKeysInputMode'EnabledStickyKeysInputMode$StickyMouseButtonsInputMode'Disabled#StickyMouseButtonsInputMode'EnabledStickyMouseButtonsInputModemodifierKeysNumLockmodifierKeysCapsLockmodifierKeysSupermodifierKeysAltmodifierKeysControlmodifierKeysShift ModifierKeysStandardCursorShape'VResizeStandardCursorShape'HResizeStandardCursorShape'HandStandardCursorShape'CrosshairStandardCursorShape'IBeamStandardCursorShape'ArrowStandardCursorShapeGPipe-Core-0.2.3.1-inplaceGraphics.GPipe.Internal.ContextgetFrameBufferSizeContextHandlerParametersUnsafeWindowHintsException WindowConfig configWidth configHeight configTitle configMonitor configHintsconfigSwapIntervaldefaultWindowConfigCreateWindowExceptionCreateSharedWindowException InitException EventPolicyPollWait WaitTimeout GLFWWindowHandle HandleConfigconfigErrorCallbackconfigEventPolicydefaultHandleConfigmainstepmainloop getWindowSizesetWindowSizeCallbackwindowShouldClosesetWindowShouldClosesetWindowCloseCallbacksetKeyCallbackgetKeysetStickyKeysInputModegetStickyKeysInputModesetCharCallbacksetCursorPosCallback getCursorPossetCursorInputModegetCursorInputMode setCursorsetCursorEnterCallbacksetMouseButtonCallbackgetMouseButtonsetStickyMouseButtonsInputModegetStickyMouseButtonsInputModesetScrollCallbackgetClipboardStringsetClipboardStringsetDropCallback allowedHintunconditionalHints bitsToHintsLoggerLogSinkLogLevelemitLog stderrSink loggerSink loggerLevelrunSinkERRORWARNINGINFODEBUGgetCurrentContextsayinit terminatesetErrorCallback createWindow destroyWindow windowHintsmakeContextCurrent swapInterval swapBuffers waitEventswaitEventsTimeout pollEventsgetFramebufferSize EffectMainOnMainnewBoundRPCExecuteNoop sendEffect fetchResult drainComm runActions awaitActionsprocessActionsUsageExceptionContext MMContextbase GHC.MaybeNothing configLogger withContextunwrappingGPipeWindowwithHandleFromGPipe effectMainonMainMainstepOffMainExceptionWWindow handleLoggerhandleEventPolicy handleCtxs handleRaw handleComm handleTid contextRawwithContextFromGPipewithBothFromGPipemainstepInternalmainloopInternal withWindow withWindowRPC wrapWindowFunwrapCallbackSetter