w      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneBConfiguration for a new GLFW window and associated OpenGL context.TDefault window configuration for a small window on any monitor with the given title. SafexCreate an RPC handle bound to the current thread. Actions sent from the bound thread will just be run w/o doing an RPC.  None%&79;aIO Exception thrown when attempting to create a new window using GLFW hints which GPipe manages.None#/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.7This function must only be called from the main thread.,This function may be called before glfwInit.kThe 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.,This function may be called before glfwInit.7This function must only be called from the main thread.There are many caveats: Uhttp://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.lIf the context of the specified window is current on the main thread, it is detached before being destroyed.iThe 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.HSeems 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):2x This function must only be called from the main thread.,This function may be called from any thread.A 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.OEGL: The context of the specified window must be current on the calling thread.,This function may be called from any thread. This 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. This 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. This 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. HThis function may be called from any thread. Access is not synchronized. HThis function may be called from any thread. Access is not synchronized.7This function must only be called from the main thread.7This function must only be called from the main thread.1Do not use this function to implement text input.7This function must only be called from the main thread.\Implemented with glfwSetInputMode * This function must only be called from the main thread.\Implemented with glfwGetInputMode * This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread.\Implemented with glfwSetInputMode * This function must only be called from the main thread.\Implemented with glfwGetInputMode * This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread.\Implemented with glfwSetInputMode * This function must only be called from the main thread.\Implemented with glfwGetInputMode * This function must only be called from the main thread.7This function must only be called from the main thread.7This function must only be called from the main thread. 7This function must only be called from the main thread.!7This function must only be called from the main thread.%"#      !%"#      !%"#      !None79;DR4IO Exception thrown when GLFW window creation fails.;IO exception thrown when GLFW library initialization fails.UType 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.8Opaque handle representing a, possibly closed, internal $&. You'll typically deal with GPipe's Window instead of this one.8Opaque 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 %Closeable internal handle for $.$7Internal handle for a GPipe-created GLFW window/context&5Specify a callback to handle errors captured by GLFW.' Specify the 5 to use for automatic GLFW event processing. Set to (= to disable automatic event processing (you'll need to call  or ).) Run the action with the context if the context is still open.*URun the action. If any open context is avaiable, take it and pass it into the action.+&Template for "Run the action with XYZ (if the gpipe window still exists and ABC.", Run the action with the context handle  if the gpipe window still exists.-#Route an effect to the main thread..1Route an action with a result to the main thread."Default GLFW handle configuration.!Print any errors that GLFW emits.:Automatically process GLFW events after every buffer swap.5Process GLFW and GPipe events according to the given . Use case: Call u 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 (.5Process 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.(012345%$67/&'8)*+'Specialize use of unwrappingGPipeWindow,9:-.2 will process events and return immediately while & will sleep until events are received.;A  loop runs continuously while a . loop sleeps until events or user input occur.<=>?&/&'012345%$678)*+,9:-.;<012345%$678)*+,9:-.;<=?>/&' None@cConvenience funcion to run the action with the context if GPipe can locate it and it is still open.AcConvenience function to look up and unwrap the GLFW window and route the GLFW function through RPC.BUConvenience function to wrap two-argument functions taking window and something else.CConvenience function to wrap callback setters which take window and pass it to the callback. Callbacks will be passed the GPipe window id.@ABC@ABC@ABCNone-Register or unregister a callback to receive  changes to any . Poll for the  of a . Polling a  for T 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.kRegister or unregister a callback to receive character input obeying keyboard layouts and modifier effects.XRegister or unregister a callback to receive mouse location changes. Callback receives x and yU position measured in screen-coordinates relative to the top left of the GLFW window.#Poll for the location of the mouse.^GLFW supports setting cursor mode to support mouselook and other advanced uses of the mouse:  <http://www.glfw.org/docs/latest/input_guide.html#cursor_mode.5Set the cursor to be displayed over the window while  is Normal.-Register or unregister a callback to receive 4 changes when the cursor enters or exits the window.-Register or unregister a callback to receive  changes to a . Poll for the  of a . Polling a  for T may sometimes miss state transitions. If you use cannot use a callback to receive  changes, use ; in combination with GLFW's sticky-mouse-buttons feature:  Chttp://www.glfw.org/docs/latest/input_guide.html#input_mouse_button.CRegister or unregister a callback to receive scroll offset changes.NPoll the system clipboard for a UTF-8 encoded string, if one can be extracted.5Store a UTF-8 encoded string in the system clipboard._Register or unregister a callback to receive file paths when files are dropped onto the window. ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  NoneNone ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  /&'D                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                      !"#$%&'()*+,-./01 2 3 4 56'GPipe-GLFW-1.4.0-1ByeDoynuXDHp8N4KtxLnY!Graphics.GPipe.Context.GLFW.InputGraphics.GPipe.Context.GLFW#Graphics.GPipe.Context.GLFW.Wrapped$Graphics.GPipe.Context.GLFW.ResourceGraphics.GPipe.Context.GLFW.RPC"Graphics.GPipe.Context.GLFW.Format!Graphics.GPipe.Context.GLFW.Calls#Graphics.GPipe.Context.GLFW.Handler$Graphics.GPipe.Context.GLFW.Wrappers%GLFW-b-1.4.8.1-Al6jnUrPA9PAgpgZuphRiwGraphics.UI.GLFW destroyCursorcreateStandardCursor createCursorsetTimegetTimegetJoystickNamegetJoystickButtonsgetJoystickAxesjoystickPresentpostEmptyEventGraphics.UI.GLFW.TypesKey'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'EnabledStickyMouseButtonsInputModemodifierKeysSupermodifierKeysAltmodifierKeysControlmodifierKeysShift ModifierKeysStandardCursorShape'VResizeStandardCursorShape'HResizeStandardCursorShape'HandStandardCursorShape'CrosshairStandardCursorShape'IBeamStandardCursorShape'ArrowStandardCursorShape GPipe-2.2-APERTiAtjcn7PjPghIGoAhGraphics.GPipe.Internal.ContextContextHandlerParameters WindowConfig configWidth configHeight configTitle configMonitor configHintsconfigSwapIntervaldefaultWindowConfigUnsafeWindowHintsExceptionCreateWindowExceptionCreateSharedWindowException InitException EventPolicyPollWait GLFWWindowHandledefaultHandleConfigmainstepmainloopsetKeyCallbackgetKeysetStickyKeysInputModegetStickyKeysInputModesetCharCallbacksetCursorPosCallback getCursorPossetCursorInputModegetCursorInputMode setCursorsetCursorEnterCallbacksetMouseButtonCallbackgetMouseButtonsetStickyMouseButtonsInputModegetStickyMouseButtonsInputModesetScrollCallbackgetClipboardStringsetClipboardStringsetDropCallbackwindowShouldClosenewBoundRPCExecuteNoop sendEffect fetchResult drainComm runActions awaitActionsprocessActions allowedHintunconditionalHints bitsToHints $fException[]debuginit terminatesetErrorCallback createWindow destroyWindow windowHintsmakeContextCurrent swapInterval swapBuffers waitEvents pollEventssetWindowShouldClosegetFramebufferSize EffectMainOnMainContext MMContextconfigErrorCallbackconfigEventPolicybaseGHC.BaseNothing withContextwithAnyContextunwrappingGPipeWindowwithHandleFromGPipe effectMainonMain HandleConfigWWindow handleTid handleComm handleCtxshandleEventPolicy contextRawbugwithContextFromGPipewithBothFromGPipemainstepInternalmainloopInternal#D:R:ContextHandlerParametersHandle0$fContextHandlerHandle withWindow withWindowRPC wrapWindowFunwrapCallbackSetter